在这里我输入我的名字Amir
,但正在打印奇怪的字符É
我的代码:
#include<stdio.h>
int main()
{
char Name[64];
printf("Enter first name: ");
scanf("%c", &Name);
printf("%c", Name);
}
在这里我输入我的名字Amir
,但正在打印奇怪的字符É
我的代码:
#include<stdio.h>
int main()
{
char Name[64];
printf("Enter first name: ");
scanf("%c", &Name);
printf("%c", Name);
}
这里有几件事要解决。
首先,使用正确的格式说明符来打印值。%c
处理一个字符。要打印字符串,您需要使用%s
.
如果您必须使用scanf
,那么除非用户输入 64 个或更多字符,否则以下应该可以正常工作。
scanf("%s", Name);
printf("%s", Name);
但是,强烈建议避免使用scanf
获取字符串作为用户输入。请改用fgets。
fgets(name, 63, stdin);
printf("%s", name);
我建议您阅读 的手册页fgets()
,但简而言之,使用它的好处scanf
是它可以防止数组溢出(数组越界)。