2013-02-16 100 views
2

我试图从duom.txt文件读取文本并将每个字符存储到数组中。 但我没有得到正确的答案。 我的代码有什么问题?如何从文本文件中读取文本并将每个字符存储在数组中

# 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 
+3

我知道这是不是回答你的问题,但你的代码格式是令人厌恶的。尝试并实践适当的缩进和句法“美化”,以免您未来可能会迷惑自己。 – tsujp 2013-02-16 17:08:43

回答

1
  1. 龟etc()返回一个int这样类型的chint

  2. feof()告诉你是否有读过文件的结尾。这意味着你的while循环将被执行超过所需的一次。

1

你应该把j,而不是i在打印循环:

for(j=0;j<i;j++){ 
     printf("%c",str[i]); // <-- here, it must be `str[j]` 
} 

这就是为什么你应该使用永诺有意义的变量名!

1

程序中有一个小错字。

for(j=0;j<i;j++){ 
    printf("%c",str[j]); //str[j] instead of str[i] 
0

有在代码中的一个小错误是

for(j=0;j<i;j++){ 
     printf("%c",str[i]); // <-- here, it must be `str[j]` 
} 

的变量导致diaster在程序 的变化,从而对其进行编辑,并尝试

相关问题