Printf在行尾插入%

aha*_*son 4 c printf

我正在编写一个基本程序,以学习如何在C语言中使用基本输入/输出,并且效果很好。我唯一的问题是打印时,终端上字符串的末尾有一个“%”。这是我的代码:

#include <stdio.h>

int main(int argc, char **argv) {

    char name[32];

    printf("Enter your name: ");
    scanf("%s", name);

    printf("Hello, %s", name);

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,输出为 Hello, Andrew%

有什么帮助吗?

Fat*_*ror 5

您的代码中没有任何内容可以解释此行为。但是,如果您是从shell运行此程序,则可能是shell提示。

在输出中添加换行符:

printf("Hello, %s\n", name);
Run Code Online (Sandbox Code Playgroud)

这将导致提示按照您的预期在下一行上打印。

  • @ahalverson:我不是zsh用户,但看起来`zsh`这样做是为了通知您先前的命令没有包含换行符。您可以看到与`echo -n abc`相同的行为。 (6认同)