伙计们,我想从我的文件中读取文本,并将每个字符分配给数组的单个元素
char A[1000];
FILE * fpointer;
fpointer=fopen("text.txt","r");
i=0;
while(!feof(fpointer))
{
fscanf(fpointer,"%c",&A[i]);
i=i+1;
}
fclose(fpointer);
for (i=0;i<100;i++)
{
printf("%c",A[i]);
}
return 0;
Run Code Online (Sandbox Code Playgroud)
但问题是输出是一些奇怪的符号而不是文件的文本,这是"这只是一个测试".为什么会发生这种情况?
可能的原因包括:
fopen无法打开指定的文件.通过检查返回值来修复fopen.i.更正的代码段:
int i = 0, j = 0;
char A[1000];
FILE* fpointer;
fpointer = fopen("text.txt", "r");
if(!fpointer)
{
fputs("fopen failed! Exiting...\n", stderr);
exit(-1); /* Requires `stdlib.h` */
}
while(fscanf(fpointer, "%c", &A[i]) != EOF)
{
i = i + 1;
}
fclose(fpointer);
for (j = 0; j < i; j++){
printf("A[%d] = '%c'\n", j, A[j]);
}
Run Code Online (Sandbox Code Playgroud)