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
4

4 に答える 4

1

印刷ループのj代わりに配置する必要があります。i

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

そのため、常に意味のある変数名を使用する必要があります。

于 2013-02-16T15:27:56.253 に答える
1
  1. fgetc() はintso 型のchshould be を返しますint

  2. feof() は、ファイルの終わりを過ぎて読み取ったかどうかを示します。これは、while ループが必要以上に 1 回実行されることを意味します。

于 2013-02-16T15:23:23.363 に答える
1

プログラムに小さなタイプミスがあります。

for(j=0;j<i;j++){
     printf("%c",str[j]); //str[j] instead of str[i]
于 2013-02-16T15:29:17.923 に答える