C语言中,利用循环语句,从文件中读取学生的数据(注意每行结尾读取一个换行符,存入ch中)
时间: 2023-06-19 19:08:56 浏览: 131
可以使用C语言中的fscanf和fgets函数来读取文件中的数据。
如果每行数据的格式是固定的,比如每行包含学生的姓名和分数,可以使用fscanf函数按格式读取:
```c
#include <stdio.h>
int main() {
FILE *fp;
char name[20];
int score;
fp = fopen("students.txt", "r");
if (fp == NULL) {
printf("Error opening file\n");
return 1;
}
while (fscanf(fp, "%s %d\n", name, &score) == 2) {
printf("%s's score is %d\n", name, score);
}
fclose(fp);
return 0;
}
```
上述代码中,fscanf函数的第一个参数是文件指针,第二个参数是格式字符串,%s表示读取一个字符串,%d表示读取一个整数。注意,格式字符串中的\n表示读取一个换行符。
如果每行数据的格式不固定,比如每行是一个字符串,则可以使用fgets函数按行读取:
```c
#include <stdio.h>
int main() {
FILE *fp;
char ch[100];
fp = fopen("students.txt", "r");
if (fp == NULL) {
printf("Error opening file\n");
return 1;
}
while (fgets(ch, 100, fp) != NULL) {
printf("%s", ch);
}
fclose(fp);
return 0;
}
```
上述代码中,fgets函数的第一个参数是存储读取结果的字符数组,第二个参数是字符数组的大小,第三个参数是文件指针。在循环中每次读取一行数据,直到读到文件结尾为止。注意,fgets函数会读取换行符。
阅读全文