Ne pas lire un fichier par petit bout ou 1 char à la fois. Lis
tout ton fichier
d'un coup et navigue dans le buffer avec des pointeurs:
#include <stdlib.h>
#include <io.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char *buffer, *c, *d, tab[256] = {0};
FILE *file;
int len, line = 2;
if(!(file = fopen("c:\\test.txt", "r"))) return 0;
if(!(len = _lseek(file->_file, 0, SEEK_END))) goto closefile;
_lseek(file->_file, 0, SEEK_SET);
if(!(buffer = (char*)malloc(len))) goto closefile;
fread(buffer, 1, len, file);
c = buffer; d = buffer;
do
{
if(*c++ == '\n')
{
if(!--line) break;
d = c;
}
}while(--len);
strncpy(tab, d, c-d);
printf("%s\n", tab);
free(buffer);
closefile:
fclose(file);
system("pause");
return 0;
}
D'ailleurs, si ton programme ne doit rester que sous Windows, je te suggère d'utiliser les fonctions de l'API Win32:
CreateFile
ReadFile
GetFileSize
C++ (@++)