用fscanf()向指定文件读取指定某行数据
时间: 2023-06-15 18:03:49 浏览: 152
要读取指定文件的某一行数据,可以使用以下步骤:
1. 打开文件并检查是否成功打开。
2. 使用循环和 fgets() 函数逐行读取文件,同时计数器记录行数。
3. 当计数器等于所需行号时,使用 sscanf() 函数将该行数据读入指定变量中。
4. 关闭文件。
下面是一个示例代码:
```c
#include <stdio.h>
int main() {
FILE *fp;
char filename[] = "data.txt";
int line_number = 3;
int a, b, c;
int current_line = 1;
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Failed to open file %s", filename);
return -1;
}
while (current_line <= line_number) {
if (fgets(buffer, 256, fp) == NULL) {
printf("Failed to read line %d from file %s", line_number, filename);
return -1;
}
if (current_line == line_number) {
sscanf(buffer, "%d %d %d", &a, &b, &c);
printf("Data from line %d: %d %d %d", line_number, a, b, c);
}
current_line++;
}
fclose(fp);
return 0;
}
```
在这个示例中,我们打开名为 "data.txt" 的文件并指定要读取第3行的数据。我们使用 fgets() 函数逐行读取文件,并使用 sscanf() 函数将该行数据读入变量 a、b、c 中。最后,我们关闭文件并输出读取的数据。