Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

odczytywanie z pliku : invalid argument

Ostatnio zmodyfikowano 2015-03-28 21:09
Autor Wiadomość
krzyyyy
Temat założony przez niniejszego użytkownika
odczytywanie z pliku : invalid argument
» 2015-03-28 20:38:38
Cześć
C/C++
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
    FILE * plik;
    char tablica[ 60 ];
    char sciezka[ 60 ];
   
    gets( sciezka );
    if( plik = fopen( sciezka, "r" ) == NULL ) {
        perror( "" );
        return 0;
    }
    fgets( tablica, 100, plik );
    perror( "" );
    //if(ferror(plik))printf("cos tam\n");
    fclose( plik );
    return 0;
   
   
   
   
   
   
}
perror("") zwraca invalid argument.
a jeśli usunę komentarz z pzred
if( ferror( plik ) ) printf( "cos tam\n" );
 to program się wykrzacza;
jeśli zaś
fgets( tablica, 100, plik );
 umieszczę w whilu (tak powinno być) to nic się nie dzieje; Pomocy :)
P-129364
pekfos
» 2015-03-28 20:46:15
C/C++
if( plik = fopen( sciezka, "r" ) == NULL )
Usuń == NULL (teraz warunek będzie spełniony dla sukcesu, a nie błędu).
P-129366
kubawal
» 2015-03-28 20:47:38
Użyj
perror( NULL )
P-129367
pekfos
» 2015-03-28 20:51:10
Użyj
perror( NULL )
Bez związku i większej różnicy. Problem to priorytety operatorów.
P-129369
kubawal
» 2015-03-28 20:56:45
Przeczytaj sobie dokumentację perror().
Co do if'a powinno być
if(( plik = fopen( sciezka, "r" ) ) == 0 )
, takie coś często sie stosuje pisząc w stylu C.
P-129374
pekfos
» 2015-03-28 21:08:14
Przeczytaj sobie dokumentację perror().
Zacytuj, że nie można podać tu pustego stringa. Standard C mówi, że "" i NULL mają tu identyczny efekt.
P-129381
krzyyyy
Temat założony przez niniejszego użytkownika
» 2015-03-28 21:09:45
o matko czasu a chodziło o nawias. Dziękuje
P-129383
« 1 »
  Strona 1 z 1