📅  最后修改于: 2023-12-03 15:29:49.445000             🧑  作者: Mango
fscanf()
函数是C库中的成员函数,用于从文件中读取格式化数据。它类似于scanf()
,但前者不会从标准输入设备(例如键盘)读取数据,而是从指定文件中读取数据。
以下是fscanf()
函数的语法:
int fscanf(FILE *restrict stream, const char *restrict format, ...);
参数解释:
stream
:指向 FILE 对象的指针,该对象标识将要读取的流。format
:一个字符字符串,包含零个或多个的由百分号(%)字符开始的转换规范。…
:可变长度参数列表。fscanf()
函数返回成功读取的值的个数,如果有任何错误或未读取任何值,则返回EOF。
以下示例将从名为“test.txt”的文本文件中读取3个double类型的数字,并将它们存储在数组num
中。
#include <stdio.h>
int main() {
FILE* fp;
double num[3];
int ret;
fp = fopen("test.txt", "r");
if (fp == NULL) {
printf("Failed to open file\n");
return 1;
}
//读取3个double类型的数字
ret = fscanf(fp, "%lf %lf %lf", &num[0], &num[1], &num[2]);
if (ret != 3) {
printf("Failed to read data from file\n");
return 1;
}
//输出读取的数字
printf("Read data from file:\n");
printf("%.2lf %.2lf %.2lf\n", num[0], num[1], num[2]);
fclose(fp);
return 0;
}
# C++ fscanf()
`fscanf()`函数是C库中的成员函数,用于从文件中读取格式化数据。它类似于`scanf()`,但前者不会从标准输入设备(例如键盘)读取数据,而是从指定文件中读取数据。
## 语法
以下是`fscanf()`函数的语法:
```c++
int fscanf(FILE *restrict stream, const char *restrict format, ...);
参数解释:
stream
:指向 FILE 对象的指针,该对象标识将要读取的流。format
:一个字符字符串,包含零个或多个的由百分号(%)字符开始的转换规范。…
:可变长度参数列表。fscanf()
函数返回成功读取的值的个数,如果有任何错误或未读取任何值,则返回EOF。
以下示例将从名为“test.txt”的文本文件中读取3个double类型的数字,并将它们存储在数组num
中。
#include <stdio.h>
int main() {
FILE* fp;
double num[3];
int ret;
fp = fopen("test.txt", "r");
if (fp == NULL) {
printf("Failed to open file\n");
return 1;
}
//读取3个double类型的数字
ret = fscanf(fp, "%lf %lf %lf", &num[0], &num[1], &num[2]);
if (ret != 3) {
printf("Failed to read data from file\n");
return 1;
}
//输出读取的数字
printf("Read data from file:\n");
printf("%.2lf %.2lf %.2lf\n", num[0], num[1], num[2]);
fclose(fp);
return 0;
}
以上代码将输出以下内容:
Read data from file:
1.50 2.00 3.14