还是用fscanf读txt
时间: 2023-12-23 18:04:10 浏览: 77
从txt中读入数据到数组中(fscanf)的实现代码
如果你希望使用`fscanf`函数从一个文本文件中读取数据,可以使用类似下面的代码:
```c
#include <stdio.h>
#define ARRAY_SIZE 4
int main() {
FILE *fp;
unsigned int arr[ARRAY_SIZE];
int i;
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
// 读取文本文件中的数据并存储到数组中
for (i = 0; i < ARRAY_SIZE; i++) {
if (fscanf(fp, "%x", &arr[i]) != 1) {
printf("Failed to read data.\n");
fclose(fp);
return 1;
}
}
fclose(fp);
// 输出数组中的数据
for (i = 0; i < ARRAY_SIZE; i++) {
printf("%08x ", arr[i]);
}
printf("\n");
return 0;
}
```
这段代码会打开一个名为`data.txt`的文本文件,并使用`fscanf`函数从文件中读取数据。在每次循环中,`fscanf`函数会读取一个16进制数,并将其存储到数组中。如果读取失败,则会输出一条错误信息并退出程序。最后,我们可以使用一个循环遍历数组,并使用`printf`函数输出数组中的数据。
请注意,在使用`fscanf`函数读取字符串时,如果字符串中含有非16进制字符,`fscanf`函数会停止读取,并将已经读取的数据存储到数组中。因此,如果文本文件中的数据格式不正确,可能会导致数据读取错误。
阅读全文