FILE *fp;
char *f_array[256];
int f_length;
int *a = 0;
fp = fopen("test.txt", "r");
fseek(fp, 0, SEEK_END);
f_length = ftell(fp);
printf("%d\n\n", f_length);
int n = 1, i = 0;
while (n > 0)
{
n = fscanf(fp, "%s", f_array[i]);
i++;
}
我正在尝试将 .txt 文件的内容复制到 char* 数组中。很像 InternetReadFile 和 lpbuffer 会发生什么。但是,我似乎无法做到这一点。我需要用 .txt 文件的内容逐个字符填充我的数组。有什么建议么?我需要数组是一维的
您正在计算文件的长度,但您不以任何方式使用此信息。
char *f_array[256];
这是一个维度为 256 的指针数组char
。f_array[i]
未初始化,它指向数字必杀技,将其传递给fscanf
产生未定义的行为。您需要将其声明为如下所示:
char f_array[255][255];
但是,您将自己限制为最多 255 个字符串,而不是将其存储到单个字符串中。你也存储最大。255个字。使用fgets
或fread
立即获取整个内容。
char file[f_length + 1];
rewind(fp);
fread(file, f_length, 1, fp);
file[f_length] = 0; // terminate the string
printf("Whole file is: %s\n", file);
在这里,您将整个文件存储在一个char
s数组中。同样在最后设置文件后,您需要将文件倒回开头,否则您什么也读不到。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句