-4

在这里我输入我的名字Amir,但正在打印奇怪的字符É

我的代码:

#include<stdio.h>
int main()
{
    char Name[64];
    printf("Enter first name: ");
    scanf("%c", &Name);
    printf("%c", Name);
}

来源:https ://i.stack.imgur.com/qfcUD.png

4

1 回答 1

1

这里有几件事要解决。

首先,使用正确的格式说明符来打印值。%c处理一个字符。要打印字符串,您需要使用%s.

如果您必须使用scanf,那么除非用户输入 64 个或更多字符,否则以下应该可以正常工作。

scanf("%s", Name);
printf("%s", Name);

但是,强烈建议避免使用scanf获取字符串作为用户输入。请改用fgets

fgets(name, 63, stdin);
printf("%s", name);

我建议您阅读 的手册页fgets(),但简而言之,使用它的好处scanf是它可以防止数组溢出(数组越界)。

于 2021-04-20T05:31:26.770 回答