Blad czytania z pliku - jezyk C

0

Pisze mala baze danych pracujaca na plikach w jezyku C, w ktorej uzytkownik moze otworzyc dowolna (stworzana przez siebie wczesniej) baze. O to w jaki sposob tworze plik, zapisuje do niego np, zmienna licznik i probuje otworzyc ten sam plik do odczytania tej zmiennej (i tu sie pokazuje NULL-blad). Zrobilem mini programik takiej operacji zeby ktos kto moze mi pomoc szybko sie zorientowal co i jak robie ;).

#include <stdio.h>
#include <conio.h>

#define clear() clrscr();
#define pause() getch();

FILE *in, *out;
char Nazwa_Bazy[1];
int licznik=0;

int main()
{
clear();

/* zapisuje */
printf("Podaj nazwe pliku: ");
Nazwa_Bazy[0] = 9;

if((out = fopen(cgets(Nazwa_Bazy),"w")) == NULL) printf("Blad!");
else{
licznik++;
fprintf(out, "%i %s", licznik, "\n");
}
fclose(out);

/* czytam - podajac ten sam plik co przed chwila! */
printf("\n\nDo pliku zapisales: ");

if(in = fopen("test.txt","r") == NULL){
printf("Blad!");
}
else{
fscanf(in, "%i %s", &licznik, "\n");
printf("%i",licznik);
}
fclose(in);

pause();
return 0;
}

========================================
Menu programu jest kolorowe, dlatego korzystam z cgets.

Z gory WIELKIE dzieki za pomoc!

0

Wdarl sie maly blad... sorki, oto kod czytania:

/* czytam - podajac ten sam plik co przed chwila! */
printf("\n\nDo pliku zapisales: ");

if(in = fopen(Nazwa_Bazy,"r") == NULL){
printf("Blad!");
}
else{
fscanf(in, "%i %s", &licznik, "\n");
printf("%i",licznik);
}
fclose(in);

0

a co w zwiazku z tym wszystkim???? - jakos nie moge sie dopatrzec pytania

0

Gdybys uruchomil kod zobaczyl bys ze wyskakuje blad odczytu w linijce:

f(in = fopen(Nazwa_Bazy,"r") == NULL){

Pytanie jest wiec chyba proste? Jak to naprawic aby bylo dobrze...

0

sprubuj zmienic cgets na samo gets, a najlepiej pobierz wczesniej nazwe pliku

0

Gdybys uruchomil kod zobaczyl bys ze wyskakuje blad odczytu w linijce:

f(in = fopen(Nazwa_Bazy,"r") == NULL){

Pytanie jest wiec chyba proste? Jak to naprawic aby bylo dobrze...

Imho powinno być
f((in = fopen(Nazwa_Bazy,"r")) == NULL){

0

Nadal jest blad, mysle ze moze w Nazwa_Bazy jest jakis znak na koncu i przez to nie mozna odczytac pliku hmmm...? bo gy podejrzec co zapisala funkcja cgets to wszystko gra pod wzgledem zawartosci a mimo to jest NULL :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1