Vous pourriez utiliser quelque chose comme ceci: où vous lisez chaque ligne, vérifiez soigneusement le résultat et passez-le à une structure de données de votre choix. Je n'ai pas montré comment allouer correctement la mémoire, mais vous pouvez malloc
à l'avant et realloc
si nécessaire.
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#define FILE_BUFFER_SIZE 1024
int file_read_line(FILE *fp, char *buffer)
{
// Read the line to buffer
if (fgets(buffer, FILE_BUFFER_SIZE, fp) == NULL)
return -errno;
// Check for End of File
if (feof(fp))
return 0;
return 1;
}
void file_read(FILE *fp)
{
int read;
char buffer[FILE_BUFFER_SIZE];
while (1) {
// Clear buffer for next line
buffer[0] = '\0';
// Read the next line with the appropriate read function
read = file_read_line(fp, buffer);
// file_read_line() returns only negative numbers when an error ocurred
if (read < 0) {
print_fatal_error("failed to read line: %s (%u)\n",
strerror(errno), errno);
exit(EXIT_FAILURE);
}
// Pass the read line `buffer` to whatever you want
// End of File reached
if (read == 0)
break;
}
return;
}
Sauf si vous en écrivez une. Vous devrez lire chaque fichier ligne par ligne – Pankrates
Bien sûr, [memmap] (http://pubs.opengroup.org/onlinepubs/009695399/functions/mmap.html) le fichier et vous pouvez y accéder en tant que tableau. –
Comment le lire ligne par ligne? Ou voulez-vous dire char par char? –