1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| int machin(char *Buf, int Lg, FILE *Fic) {
char *PtBuf;
char Car;
char *FinBuf;
if (feof(Fic)) return(0);
PtBuf = Buf;
FinBuf = PtBuf + Lg - 1;
do {
if(Fic->_cnt == 0) {
_filbuf(Fic);
if(feof(Fic)) return(PtBuf - Buf);
if(Fic->_ptr != Fic->_base) {
Fic->_cnt += Fic->_ptr - Fic->_base;
Fic->_ptr = Fic->_base;
}
}
PtBuf[0] = Car = Fic->_ptr[0];
Fic->_ptr ++;
Fic->_cnt --;
PtBuf ++;
}
while ((Car != '\n') && (PtBuf < FinBuf) && !feof(Fic));
PtBuf[0] = 0;
return(PtBuf - Buf);
} |
Partager