有一个包含4194304个以空格分隔的0~255范围的整数的TXT文件,其中所有数据都在一行,用C语言将其中的每个整数读取出来存为字符串数组的一个元素
时间: 2024-05-03 22:21:19 浏览: 5
以下是一个示例代码,可以读取并存储每个整数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NUMS 4194304
#define MAX_DIGITS 4 // 最多4位,因为0~255范围内的整数最多只有3位
int main() {
FILE *fp = fopen("data.txt", "r"); // 打开文件
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
char str[MAX_DIGITS + 1]; // 存储每个整数的字符串
char *nums[MAX_NUMS]; // 存储所有整数的指针
int i = 0;
while (fscanf(fp, "%s", str) == 1) { // 逐个读取整数字符串
nums[i] = malloc(strlen(str) + 1); // 为当前整数字符串分配内存
strcpy(nums[i], str); // 将整数字符串复制到内存中
i++;
}
fclose(fp); // 关闭文件
// 输出前10个整数的字符串
for (i = 0; i < 10; i++) {
printf("%s ", nums[i]);
}
printf("\n");
// 释放所有整数字符串的内存
for (i = 0; i < MAX_NUMS; i++) {
if (nums[i] != NULL) {
free(nums[i]);
}
}
return 0;
}
```
在上面的代码中,我们首先打开文件,然后使用循环逐个读取整数字符串。对于每个整数字符串,我们为其分配内存,然后将字符串复制到内存中。最后,我们关闭文件,输出前10个整数的字符串,并释放所有整数字符串的内存。