如何从文本文件中读取文本并将每个字符存储在数组中

时间:2013-02-16 15:19:30

标签: c

我正在尝试从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

4 个答案:

答案 0 :(得分:1)

  1. fgetc()会返回int,因此ch的类型应为int

  2. 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]`
}

变量的变化导致程序中的灾难 所以编辑它并尝试