📅  最后修改于: 2023-12-03 14:54:01.998000             🧑  作者: Mango
fscanf 是 C 语言标准库中的一个函数,用于从文件中读取指定格式的数据。带分隔符的 fscanf 是 fscanf 的一种扩展,可以使用自定义的分隔符来读取数据。
int fscanf(FILE *stream, const char *format, ...)
参数说明:
stream
:要读取的文件指针。format
:格式控制字符串,指定要读取的数据类型和分隔符。...
:可选参数,为读取到的数据赋值的变量列表。带分隔符的 fscanf 的格式控制字符串有以下两种格式:
%[characters]
:用于读取一段被指定字符集中的字符。例如,%[0-9]
可以读取数字。%[^characters]
:和 %[characters]
类似,但是是排除指定字符集中的字符。例如,%[^,]
可以读取不包含逗号的任意字符序列。下面是一个简单的示例代码,可以从文件中读取逗号分隔的两个整数值,并计算它们的和。
#include <stdio.h>
int main()
{
FILE *fp;
int x, y;
fp = fopen("data.txt", "r");
if (fp == NULL) {
fprintf(stderr, "Error: cannot open file\n");
return 1;
}
if (fscanf(fp, "%d,%d", &x, &y) == 2) {
printf("%d + %d = %d\n", x, y, x + y);
} else {
fprintf(stderr, "Error: invalid data format\n");
}
fclose(fp);
return 0;
}
在这个示例代码中,我们使用了 %d
和逗号分隔符来读取两个整数值。如果读取成功,就计算它们的和并输出结果。如果读取失败,就输出错误信息并退出程序。
%[]
和 %[^]
用法上有所不同,需要注意。