#include
#define PRAISE "You rae an extraordinary being."
int main(void)
{
char name[40];
printf("What's your name?");
scanf_s("&s", name);
printf("Hello, %s %s \n", name, PRAISE);
return 0;
}
scanf_s("&s", name, 39);
和 scanf不同,_s的版本,遇到字符串,需要指定字符串缓冲区的长度,通常是数组长度-1
参考GPT和自己的思路:
这段代码中出现乱码的原因是在 scanf_s 函数的第一个参数中,出现了一个 '&_s' 的错误语法。正常的语法是 '%s',所以可以将该行代码修改为 scanf_s("%s", name),这样就能正确读入用户输入的字符串,同时避免了出现乱码的问题。