我希望能够将文本文件扫描到C程序中,以便我可以搜索和存储包含大写字母的单词。我的问题是扫描文件。
我尝试通过使用fseek确定文本文件的长度,并使用char []创建数组来创建字符串。然后,我尝试使用fgetc将每个字符扫描到数组中,但这似乎不起作用。最后是for循环,它可以通过打印输出来验证扫描是否有效。
#include <stdio.h>
int main() {
FILE *inputFile;
inputFile = fopen("testfile.txt", "r");
//finds the end of the file
fseek(inputFile, 0, SEEK_END);
//stores the size of the file
int size = ftell(inputFile);
char documentStore [size];
int i = 0;
//stores the contents of the file on documentstore
while(feof(inputFile))
{
documentStore[i] = fgetc(inputFile);
i++;
}
//prints out char
for (int j = 0; j < size; j++)
{
printf("%c", documentStore[j]);
}
return 0;
}
目前,我有很多随机的ascii字符,我不确定为什么。我希望for循环可以打印出整个txt文件。
答案 0 :(得分:0)
您需要进行以下更改
在 int size = ftell(inputFile); 之后添加xstrong建议的 fseek(inputFile,0,SEEK_SET); >
使 documentStore 为char指针,并使用 malloc 分配 size 值
while(feof(inputFile))必须更改为 while(!feof(inputFile))