Я пытаюсь прочитать строки из файла, в котором каждая строка находится на новой строке, но я думаю, что он читает символ новой строки один раз вместо строки, и я не знаю почему. Если я собираюсь читать строки неправильно, поправьте меня.
i=0;
F1 = fopen("alg.txt", "r");
F2 = fopen("tul.txt", "w");
if(!feof(F1)) {
do{ //start scanning file
fgets(inimene[i].Enimi, 20, F1);
fgets(inimene[i].Pnimi, 20, F1);
fgets(inimene[i].Kood, 12, F1);
printf("i=%d\nEnimi=%s\nPnimi=%s\nKaad=%s",i,inimene[i].Enimi,inimene[i].Pnimi,inimene[i].Kood);
i++;}
while(!feof(F1));};
/*finish getting structs*/
printf здесь, чтобы я мог видеть, что было прочитано во что и вот результат
i=0
Enimi=peter
Pnimi=pupkin
Kood=223456iatb i=1
Enimi=
Pnimi=masha
Kaad=gubkina
i=2
Enimi=234567iasb
Pnimi=sasha
Kood=dudkina
Как вы можете видеть после прочтения первой структуры, есть пустой (новая строка?) Onct, а затем все сдвигается. Я полагаю, что мог бы прочитать фиктивную строку, чтобы поглотить этот лишний пробел, и тогда ничто не сместится, но это не поможет мне понять проблему и избежать ее в будущем.
Редактировать 1: я знаю, что он останавливается на символе новой строки, но все еще читает его. Мне интересно, почему он не читает его во время третьей строки и передает в четвертую строку вместо того, чтобы давать четвертой строке четвертую строку источника, но это происходит только один раз.
Файл отформатирован следующим образом
peter
pupkin
223456iatb
masha
gubkina
234567iasb
sasha
dudkina
123456iasb