我是编程新手。我键入这个简单的代码,我不断收到此错误消息。有谁知道编译器停止工作的原因?我检查了编译器设置并单击了自动检测。它仍然无法正常工作。
任何建议表示赞赏。顺便说一下,我是编程新手,所以如果解释一些东西,请将其分解。
#include <sdtio.h>
#include <stdlib.h>
int main()
{
int name;
printf("What is your name?\n");
scanf("%s", name);
printf("Your name is %s", name);
return 0;
}
答案 0 :(得分:1)
这里的问题是,你为特定的格式说明符使用了错误的参数类型(或者我们可以说,反之亦然)。 %s
期望指向char
数组的指针作为参数,而不是int
。它调用undefined behavior。
您需要使用char
数组来输入字符串,例如
#define SIZE 32
char name[SIZE] = {0};
然后使用%s
格式说明符将是正确的。像
scanf("%31s", name); //32-1, reserve one for null-terminator
将完成这项工作。
答案 1 :(得分:0)
%s
格式说明符需要指向char
(指向char
数组)的指针,但name
是int
。< / p>
将name
更改为字符数组。
char name[100];