1

この単純なプログラムは、fgets() で問題を引き起こし、EOF を返します。これは fgets() のエラー値です。どこに問題があるのか​​ わかりません

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

FILE* openFile(const char* path)
{
    FILE* file;
    file = fopen(path, "r");
    if(file == NULL)
    {
        perror(path);
        exit(EXIT_FAILURE);
    }
    return file;
}


int main()
{
    FILE* file;
    char stringVector[6] = "hello";
    file = openFile("/home/user/workspace/fputs/src/testo.txt");

    if(fputs(&stringVector[0], file) == EOF)
    {
        printf("error in fputs");
        fclose(file);
        exit(EXIT_FAILURE);
    }

    fclose(file);
    return 0;
}
4

3 に答える 3

4

ファイルを読み取り用に開いていますが、データを書き込もうとしていますか? それは意味がありません。

于 2013-02-07T15:48:17.757 に答える
1

うーん: &stringVector[0] ?

これは、a = 1 - 1 を実行するのとまったく同じです。なぜ a = 0 を実行しないのですか?

-> stringVector = &stringVector[0]

于 2013-02-07T15:53:59.807 に答える
1

'openFile()' では 'r' でファイルを開きますが、'fputs' はファイルを 'w' しようとしています。

于 2013-02-07T15:51:08.170 に答える