4

我想用 C 编写一个简单的 main 函数,它接收两行字符串输入并将它们打印在屏幕上。这是我写的代码:

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 中用小写替换大写。%sprintf

于 2012-12-09T10:06:49.583 回答
0

只需将 %S 替换为 %s 即可,因为 C 区分大小写,这就是您必须处理这些事情的原因

于 2012-12-09T18:48:31.017 回答