有一个包含4194304个以空格分隔的0~255范围的整数的TXT文件,其中所有数据都不换行,用C语言将其中的每个整数存为字符串数组的一个元素
时间: 2024-05-02 21:18:39 浏览: 68
可以使用fscanf函数逐个读取整数,并将其转换为字符串,存储到字符串数组中。
示例代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUM 4194304
int main() {
FILE *fp;
int num[MAX_NUM];
char str[MAX_NUM][4]; // 每个整数占据不超过3个字符,再加上一个结束符'\0'
int i;
// 打开文件
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
exit(1);
}
// 逐个读取整数,并转换为字符串
for (i = 0; i < MAX_NUM; i++) {
fscanf(fp, "%d", &num[i]);
sprintf(str[i], "%d", num[i]);
}
// 关闭文件
fclose(fp);
// 输出字符串数组中的前10个元素
for (i = 0; i < 10; i++) {
printf("%s ", str[i]);
}
printf("\n");
return 0;
}
```
需要注意的是,每个整数占据的字符数不超过3个(包括可能出现的负号),因此字符串数组的每个元素需要至少分配4个字符的空间,其中包括一个结束符'\0'。同时,对于读取文件时可能出现的错误情况,需要进行异常处理。
阅读全文