我有一个文件中每一行有16个数字,组成了一个二进制数,然后我有一个数组是uint16_t类型,如何从文件中读取每一行的内容存储到这个数组中,利用c语言写代码
时间: 2024-04-09 16:29:19 浏览: 47
你可以使用C语言的文件操作函数来读取文件中每一行的内容,并将其存储到一个uint16_t类型的数组中。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#define MAX_LINE_LENGTH 17 // 每行最大长度(包括终止符)
int main() {
FILE *file = fopen("input.txt", "r");
if (file == NULL) {
printf("无法打开文件!\n");
return 1;
}
uint16_t array[MAX_LINES]; // 数组用于存储读取的数据
int i = 0;
char line[MAX_LINE_LENGTH];
while (fgets(line, MAX_LINE_LENGTH, file) != NULL) {
// 将字符串转换为无符号16位整数并存储到数组中
array[i] = (uint16_t)strtol(line, NULL, 2);
i++;
}
fclose(file);
// 打印数组中的数据(可选)
for (int j = 0; j < i; j++) {
printf("%hu\n", array[j]);
}
return 0;
}
```
这个示例代码假设你的文件名为"input.txt",每一行包含16个二进制数字(0或1),并且文件中的行数不超过数组的最大容量。代码会将每一行的内容转换为无符号16位整数,并存储到数组中。你可以根据实际需要修改文件名、数组大小和每行的最大长度。
阅读全文