【发布时间】:2020-03-23 16:38:14
【问题描述】:
我在 c 中有这个函数,它将文件中的所有数字保存在一个整数变量中。但是我想进行更改,以便我可以将每行空格之间的第二个数字保存到向量中,然后打印所有向量。下面是file.txt的例子:
123 19
321 18
432 9
876 16
875 17
这是必须更改的代码:
void LerVetor(int *V, int *N) {
FILE *fp;
int marks;
fp = fopen("dados3.txt", "r");
if(fp == NULL)
printf("Falha ao abrir ficheiro\n");
rewind(fp);
do {
fscanf(fp, "%d", &marks);
printf("%d\n", marks);
}
while(!feof(fp));
fclose(fp);
}
输出与 file.txt 相同,因为代码只是打印文件的内容。
简历:仅将每行的第二个数字(例如:19、18、9...)保存在一个向量中,然后打印该向量。
【问题讨论】:
-
您可以使用
fgets逐行读取输入。根据输入格式的确切规范,有不同的方法可以获取每行中的第二个数字。一种选择是使用strtol(带有必要的错误处理)两次。