4

2行の文字列入力を受け取り、画面に表示する単純なメイン関数をCで書きたいと思います。これは私が書いたコードです:

int main()
{
    char a[100];
    char b[100];
    printf("Enter the first string:\n");
    fgets(a,100,stdin);
    printf("Enter the second string:\n");
    fgets(b,100,stdin);
    printf("\n\n THE FIRST STRING IS:  %S\n\n THE SECOND STRING IS:%S",a, b);
    return 0;
}

コンパイルしようとすると、次のエラーメッセージが表示されます。

gcc -g -Wall PN52.c -o myprog
PN52.c: In function ‘main’:
PN52.c:12:2: warning: format ‘%S’ expects argument of type ‘wchar_t *’, but argument 2 has type ‘char *’ [-Wformat]
PN52.c:12:2: warning: format ‘%S’ expects argument of type ‘wchar_t *’, but argument 3 has type ‘char *’ [-Wformat]

助けてくれてありがとう

4

3 に答える 3

8

%Sフォーマットを使用しますが、文字列 ( char*) のフォーマットは です%s

printf("%s - %s\n", a, b);
于 2012-12-09T10:06:57.727 に答える
3

フォーマット文字列の大文字%S を小文字%sに置き換えます。printf

于 2012-12-09T10:06:49.583 に答える
0

Cは大文字と小文字を区別するため、%Sを%sに置き換えるだけです。そのため、これらのことに注意する必要があります

于 2012-12-09T18:48:31.017 に答える