ogipierogi Temat założony przez niniejszego użytkownika |
operacja na plikach - sprawdzanie zawartosci » 2013-01-22 23:49:11 Witam, do mojego projektu potrzebuje dodać obsługę błędów. Robiąc to wg schematów ze stron http://komputery.katalogi.pl/%5Bc%5D_program_ma_wczytywac_wyrazy_z_pliku_wejsciowego_...-t120021.html http://home.agh.edu.pl/~danpoc/dydaktyka/Jezyk%20C%20-%20cz.3.pdf ciągle coś nie działa... 1. pierwsza rzecza jaka chciałbym aby program sprawdzał, to czy w pliku tekstowym zadanym przez użytkownika znajdują się litery lub znaki specjalne 2. Czy plik jest pusty Z gory dziekuje za pomoc |
|
ogipierogi Temat założony przez niniejszego użytkownika |
» 2013-01-22 23:59:14 dodam ze chodzi o język C |
|
DejaVu |
» 2013-01-23 00:49:35 Tak na pierwszy rzut oka to materiały, które podałeś całkiem ładnie są przygotowane i opisują podstawy obsługi plików w C. Sprawdzaj każdy znak z pliku czy jest literą lub znakiem specjalnym. |
|
ogipierogi Temat założony przez niniejszego użytkownika |
» 2013-01-23 01:07:15 tylko jak? dziwi mnie to ze jak sprawdzam czy if((plik_czyt=fopen(nazwa,"r"))==NULL) plus printf do bledu, nie działa. |
|
Admixior |
» 2013-01-23 01:18:41 Opisz szerzej co nie działa. Czy to otwieranie pliku czy też printf. I podaj trochę więcej kodu. |
|
ogipierogi Temat założony przez niniejszego użytkownika |
» 2013-01-23 01:24:20 int main( int argc, char * argv[] ) { char nazwa[ 80 ], nazwaz[ 90 ]; char znak; int wiersz = 0; int i, j, liczba; FILE * plik_czyt; FILE * plik_zapis; struct array * tab = InitArray(); printf( "Podaj nazwe pliku: " ); scanf( "%s", nazwa ); printf( "Czytam liczby z pliku: %s\n", nazwa ); i = 0; if(( plik_czyt = fopen( nazwa, "r" ) ) != NULL ) { while( fscanf( plik_czyt, "%d", & liczba ) != EOF ) { printf( "Odczytano: %d\n", liczba ); AddElement( tab, liczba ); i++; znak = fgetc( plik_czyt ); if( znak == '\n' ) wiersz++; } printf( "Plik zawiera %d wierszy\n", wiersz ); fclose( plik_czyt ); printf( "Zakonczono odczyt z pliku: %s\n", nazwa ); strcpy( nazwaz, "sort" ); strcat( nazwaz, nazwa ); printf( "Zapisuje liczby do pliku: %s\n", nazwaz ); if(( plik_zapis = fopen( nazwaz, "w" ) ) != NULL ) { for( j = 0; j < i; j++ ) { QuickSort( tab, 0, tab->added - 1 ); printf( "Zapisuje: %d\n", *( tab->elements + j ) ); fprintf( plik_zapis, "%d\n", *( tab->elements + j ) ); } fclose( plik_zapis ); printf( "Zakonczono zapis do pliku: %s\n", nazwaz ); } } else printf( "Blad otwarcia pliku %s!\n", nazwa ); free( tab->elements ); free( tab ); system( "PAUSE" ); return 0; }
oto kod główny programu bez implementacji funkcji i struktur Chciałbym aby miał on jeszce zabezpieczenie przed wczytaniem pustego pliku, i pliku który bedzie miał litere. poniżej przedstawiam mozliwosc rozwiazania pustosci pliku, jednak w zaleznosci w ktorym miejcu wklepie to w kodzie, albo nie działa w ogole, albo bez wzgledu na to czy plik wczytywany jest pusty czy nie, wyswietla komunikat o tym bledzie i koncyz prace. co robie ź le ? plik_czyt = fopen( nazwa, "r" ); if( plik_czyt == NULL ) { printf( "Blad! plik pusty!" ); getchar(); return 0; }
|
|
killjoy |
» 2013-01-23 01:41:46 Prosze cię wrzuć kawałki kodu w znaczniki [cpp][/cpp] to może coś poradze. |
|
ogipierogi Temat założony przez niniejszego użytkownika |
» 2013-01-23 01:51:47 już |
|
« 1 » 2 3 |