0

1 から 400 までの数字をテキスト ファイルに書き込もうとしています。エラーなしで実行されている以下のコードを使用していますが、ファイルは空のままです。

どんな助けでも大歓迎です。

#include <stdio.h>

int main(void)
{
    FILE *filePointer;
    filePointer = fopen("file.txt","w");
    int i; 
    for(i=0; i > 400; i++)
    {
        fputs("%d, ",i,filePointer);
    }
    fclose(filePointer);
    return(0);
}
4

3 に答える 3

11

いいえ、少なくとも深刻な警告なしにコンパイルする方法はありません。

fputs()のように使用し、ポインター (コンパイラーが許可しない) と追加の引数 (コンパイラーが許可しない) のfprintf()代わりに整数を渡します。FILE

また、forループが壊れています。真ん中の部分は、ループが実行されている限り真であるべき式であり、その逆ではありません。

あなたが意味したのは:

for(i = 0; i < 400; ++i)
{
  fprintf(filePointer, "%d, ", i);
}

また、ファイルが実際に開かれたと仮定する前に、そのファイルが実際に開かれたかどうかを確認する必要があります。I/O が失敗する可能性があります。

于 2015-04-28T09:48:23.410 に答える
4

fputs() の使用法とは別に、問題は次のとおりです。

for(i=0; i > 400; i++)

変数をゼロで初期化し、それが 400 より大きい限りループを実行すると、それは長続きしません。

于 2015-04-28T09:50:23.287 に答える