J'ai utilisé fwrite
pour stocker des données et maintenant j'essaie d'utiliser fread
pour lire les données du fichier txt pour le traitement. Je veux lire les valeurs individuellement, mais je n'arrive pas à comprendre comment vous feriez cela. Voilà ce que j'ai essayé:Comment utiliser fread pour lire une valeur de fichier par valeur?
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE * pFile;
long lSize;
unsigned short * buffer;
size_t result;
pFile = fopen ("myfile.txt" , "rb");
// obtain file size:
fseek (pFile , 0 , SEEK_END);
lSize = ftell (pFile);
rewind (pFile);
// allocate memory to contain the whole file:
buffer = (unsigned short *) malloc (sizeof(unsigned short)*lSize);
// copy the file into the buffer:
result = fread (buffer,1,lSize,pFile);
printf("%uz\n", result);
// terminate
fclose (pFile);
free (buffer);
return 0;
}
Le programme ci-dessus compile bien, mais quand je le lance avec ./a.out
je reçois une erreur de segmentation. Quand je l'exécute avec sudo ./a.out
je n'obtiens pas de faute de seg, mais rien ne s'imprime. Une idée de ce que je peux faire pour le réparer?
Est-ce une erreur de vérification ici: 'pfile = fopen ("myfile.txt", "rb"); ' –
@ πάνταῥεῖ Qu'est-ce que wo Je vérifie? Cela ouvre juste le fichier. Tant que le nom de fichier est correct, cela devrait fonctionner correctement. –
Vous n'avez jamais vérifié la valeur de retour par rapport à 'NULL'! –