1

これは私のコードです:

char sentence[400];
FILE *f;

const char *appname = application_name; //where the application_name comes from the program
strcat(sentence,appname);
... //I add more string 

f = fopen ("Test.txt", "a+");
...
fprintf(f,"%s\n",sentence);
fclose (f);

結果の例は次のとおりàB®pgAdmin III - Browser ですàB®

追加するprintf("%s",appname)と、コンソールに正しい名前が表示されます。上記の例の場合pgAdmin III - Browser、なぜですか?

4

2 に答える 2

4

sentenceは初期化されておらず、それに何かを追加しています。最終的には、ランダムなゴミの後にテキストが続きます。変数を使用strcpyまたは初期化しsentenceます。

于 2013-03-14T07:15:28.143 に答える
0

strcatをstrcpyに変更すると、プログラムは正常に機能します。

    #include <stdio.h>
    #include <string.h>
    int main()
    {
    char sentence[400];
    const char *appname = "string_check";
    strcpy(sentence,appname);
    printf("%s\n", sentence);
    return 0;
    }
于 2013-03-14T07:39:51.527 に答える