我正在尝试从duom.txt文件中读取文本并将每个char存储到数组中。 但我没有得到正确的答案。 我的代码出了什么问题?
# include <stdio.h>
# include <stdlib.h>
int main()
{
FILE *in;
char ch,str[100],cw;
int j,i = 0;
in=fopen("duom.txt","r");
if(in){
while(!feof(in)){
ch=getc(in);
str[i] = ch;
i++;
}
}
for(j=0;j<i;j++){
printf("%c",str[i]);
}
printf("\n");
fclose(in);
system("pause");
return 0;
}
duom.txt文件:
My name is Lukas
答案 0 :(得分:1)
fgetc()会返回int
,因此ch
的类型应为int
。
feof()告诉你是否读过文件的结尾。这意味着你的while循环将再次执行一次。
答案 1 :(得分:1)
您应该在打印循环中放置j
而不是i
:
for(j=0;j<i;j++){
printf("%c",str[i]); // <-- here, it must be `str[j]`
}
这就是为什么你应该总是使用有意义的变量名!
答案 2 :(得分:1)
您的计划中有一个小错字。
for(j=0;j<i;j++){
printf("%c",str[j]); //str[j] instead of str[i]
答案 3 :(得分:0)
代码中存在一个小错误
for(j=0;j<i;j++){
printf("%c",str[i]); // <-- here, it must be `str[j]`
}
变量的变化导致程序中的灾难 所以编辑它并尝试