Προς το περιεχόμενο

fopen και segmentation fault


dinak

Προτεινόμενες αναρτήσεις

Δημοσ.

έχω το εξής απλό προγραμματάκι:

 

>

#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

 

μπορεί να βοηθήσει κάποιος;

Δημοσ.

Κάτι τέτοιο σου κάνει;

>#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;
}

Δημοσ.

dinak έχεις ξεχάσει την παρένθεση στην if. Πρέπει να είναι:

 

>if( (fp=fopen("lala.txt", "r")) == NULL)

 

Η παρένθεση χρειάζεται για τον ίδιο λόγο που την έχεις βάλει και στην while, το = έχει μικρότερη προτεραιότητα από τους τελεστές σύγκρισης.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...