首页 > 解决方案 > Putchar 字符出现在我的 printf 函数的前面

问题描述

使用此代码

void echo_char_code() {
    int x;
    printf ("Please enter a character:\n");
    x = getchar();
    printf("The character code of '%c' is %d", putchar(x), putchar(x));
    printf(". \n");
}

int main() {
    echo_char_code();
    return 0;
}

但由于某种原因,我的输出是

AAThe character code of 'A' is 65.

我想知道为什么“AA”出现在开头,而不仅仅是我想要的“A”和 65。

标签: cprintfputchar

解决方案


您不应将 putchar(x) 作为参数传递,而应使用变量 x。

void echo_char_code() {
    int x;
    printf ("Please enter a character:\n");
    x = getchar ();
    printf("The character code of '%c' is %d", x, x)); // changing putchar(x) to x solves the problem.
    printf (". \n");
}

int main() {
    echo_char_code();
    return 0;
}

推荐阅读