有一个包含4194304个以空格分隔的0~255整数的TXT文档,用C语言(不使用fscanf)将其中的每个整数存为字符串数组的元素
时间: 2024-05-05 18:17:17 浏览: 95
用C语言如何读取TXT文件中的每行的第一个数据.doc
可以使用fread函数读取整个文本文件,并将其存储为一个字符数组。然后,可以使用strtok函数将字符数组分解为单个整数字符串,并将其存储在字符串数组中。
以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FILENAME "numbers.txt"
#define NUM_INTEGERS 4194304
int main() {
FILE* fp;
char* buffer;
char* token;
char* integers[NUM_INTEGERS];
int i = 0;
fp = fopen(FILENAME, "rb");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
buffer = malloc(NUM_INTEGERS * 4); // 4 bytes per integer
if (buffer == NULL) {
printf("Failed to allocate memory.\n");
return 1;
}
fread(buffer, 4, NUM_INTEGERS, fp);
token = strtok(buffer, " ");
while (token != NULL) {
integers[i] = token;
token = strtok(NULL, " ");
i++;
}
for (i = 0; i < NUM_INTEGERS; i++) {
printf("%s ", integers[i]);
}
free(buffer);
fclose(fp);
return 0;
}
```
注意,此代码假定每个整数之间只有一个空格。如果有多个空格或其他分隔符,请相应地修改strtok函数的第二个参数。
阅读全文