用fscanf与fgets读取文件
时间: 2023-07-18 20:03:53 浏览: 111
fscanf 和 fgets 都是 C 语言中常用的文件读取函数,但是它们的使用方式略有不同。
fscanf 是按照指定的格式从文件中读取数据并将其存储到变量中。它的基本语法如下:
```c
int fscanf(FILE *stream, const char *format, ...);
```
其中,stream 表示要读取的文件流,format 表示读取格式,... 表示要读取的变量。
例如,假设我们有一个名为 data.txt 的文件,包含以下内容:
```
Alice 18
Bob 20
Charlie 25
```
我们可以使用 fscanf 从文件中读取数据:
```c
#include <stdio.h>
int main() {
FILE *fp = fopen("data.txt", "r");
char name[20];
int age;
while (fscanf(fp, "%s %d", name, &age) != EOF) {
printf("%s is %d years old\n", name, age);
}
fclose(fp);
return 0;
}
```
上述代码将打印出以下内容:
```
Alice is 18 years old
Bob is 20 years old
Charlie is 25 years old
```
fgets 则是按行从文件中读取数据,并将其存储到指定的缓冲区中。它的基本语法如下:
```c
char *fgets(char *s, int size, FILE *stream);
```
其中,s 表示要读取的缓冲区,size 表示缓冲区大小,stream 表示要读取的文件流。
例如,假设我们有一个名为 data.txt 的文件,包含以下内容:
```
Hello World
This is a test
```
我们可以使用 fgets 从文件中读取数据:
```c
#include <stdio.h>
int main() {
FILE *fp = fopen("data.txt", "r");
char buffer[100];
while (fgets(buffer, sizeof(buffer), fp)) {
printf("%s", buffer);
}
fclose(fp);
return 0;
}
```
上述代码将打印出以下内容:
```
Hello World
This is a test
```
阅读全文