我的输入文件基本上是这样的:
第1组
加布西奥多·西蒙得分10
第2组
Josh James Matthew
得分9
我通常在阅读文件时使用fscanf,但我不知道如何在一次阅读三行时使用它。我还是新来的c所以有人可以帮助我吗?
编辑:对不起,我忘了说组成员并不总是3.它甚至可以是数百个答案 0 :(得分:1)
您可以使用fgets
从文件中逐行阅读。
这样的事情会让你开始:
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
int
main(void) {
FILE *fp;
char line[MAXSIZE];
fp = fopen("yourfile.txt", "r");
if (fp == NULL) {
fprintf(stderr, "%s\n", "Error reading from file");
exit(EXIT_FAILURE);
}
while (fgets(line, MAXSIZE, fp) != NULL) {
printf("%s\n", line);
}
fclose(fp);
return 0;
}
答案 1 :(得分:0)
在这里,我重构了我之前想过的一切。我正在提供一个新的解决方案,使用C工具在文本文件中获取行。我能够通过组合不同的编程技术来实现这一目标,如下所示:
C提供的功能:
scanf():收集字符串
getchar():检查文件的结尾
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 500
int
main(void) {
char line[MAXSIZE];
while (scanf("%499[^\n]", line)== 1 && getchar() != EOF) {
printf("%s\n", line);
}
return 0;
}
从终端运行此C代码的步骤:
答案 2 :(得分:0)
char group[32], name[128], score[32];
FILE *fp = fopen("score.txt", "r");
while(3 == fscanf(fp, "%31[^\n]%*c%127[^\n]%*c%31[^\n]%*c", group, name, score)){
printf("%s, %s, %s\n", group, name, score);
}
fclose(fp);