Я пытаюсь открыть простой текстовый файл в C, как показано ниже.
Вводимый текст:
Name Sex Age Dad Mom
Gabriel M 58 George Claire
Louise F 44
Pablo M 19 David Maria
Я сомневаюсь, как я могу определить пробелы в списке и правильно перейти к другим строкам.
Вот мой код:
#include <stdio.h>
int main() {
FILE *cfPtr;
if ((cfPtr = fopen("clients.txt", "r")) == NULL) {
puts("The file can't be open");
} else {
char name[20];
char sex[4];
int age;
char dad[20];
char mom[20];
char line[300];
printf("%-10s%-10s%-10s%-10s%-10s\n","Name","Sex","Age","Dad","Mom");
fgets(line,300,cfPtr);
fscanf(cfPtr,"%10s%10s%d%12s%12s",name,sex,&age,dad,mom);
while (!feof(cfPtr)) {
printf("%-10s%-10s%d%12s%12s\n",name,sex,age,dad,mom);
fscanf(cfPtr,"%19s%3s%d%12s%12s",name,sex,&age,dad,mom);
}
fclose(cfPtr);
}
return 0;
}
Он отлично работает, если я заполняю все пробелы...
fscanf()
вместоfeof(cfPtr)
. Кто или какой текст предложилwhile (!feof(cfPtr)) {
? - person chux - Reinstate Monica   schedule 01.11.2018while (!feof(cfPtr))
был примером от моего учителя, я думаю, это был не очень хороший пример. Я попробую использовать возвращаемое значение fscanf. - person noodles1211   schedule 04.11.2018