dinak Δημοσ. 16 Μαρτίου 2011 Δημοσ. 16 Μαρτίου 2011 έχω το εξής απλό προγραμματάκι: > #include <stdio.h> main(){ FILE *fp; int ch; if(fp=fopen("lala.txt", "r")==NULL) exit(0); while(ch!=EOF) ch=getc(fp); } και μου βγάζει segmentation fault. επίσης στην if βγάζει το εξής warning: assignment makes pointer from integer without a cast μπορεί να βοηθήσει κάποιος;
thanos713 Δημοσ. 16 Μαρτίου 2011 Δημοσ. 16 Μαρτίου 2011 Κάτι τέτοιο σου κάνει; >#include <stdio.h> #include <stdlib.h> int main(void) { FILE *fp; int ch; fp=fopen("lala.txt", "r"); if (fp == NULL) exit(0); while((ch=fgetc(fp)) != EOF) { printf("%c", ch); } fclose(fp); return 0; }
jeconom Δημοσ. 16 Μαρτίου 2011 Δημοσ. 16 Μαρτίου 2011 dinak έχεις ξεχάσει την παρένθεση στην if. Πρέπει να είναι: >if( (fp=fopen("lala.txt", "r")) == NULL) Η παρένθεση χρειάζεται για τον ίδιο λόγο που την έχεις βάλει και στην while, το = έχει μικρότερη προτεραιότητα από τους τελεστές σύγκρισης.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.