Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
请告诉我我在哪里';我做错了 #包括 main() { 字符名称1[15],名称2[15],名称3[15]; 国际贸易编号; printf(“输入序列号和名称\n”); scanf(“%d%15c',&no,name1”); printf(“%d%15s\n\n”,否,名称1); printf(“输入序列号和名称两\n”); scanf(“%d%s”,编号(&N),名称2); printf(“%d%15s\n\n”,编号,名称2); printf(“输入序列号和名称三”); scanf(“%d%15s”,&no,name3); printf(“%d%15s\n\n”,编号,名称3); }_C_Debugging - Fatal编程技术网

请告诉我我在哪里';我做错了 #包括 main() { 字符名称1[15],名称2[15],名称3[15]; 国际贸易编号; printf(“输入序列号和名称\n”); scanf(“%d%15c',&no,name1”); printf(“%d%15s\n\n”,否,名称1); printf(“输入序列号和名称两\n”); scanf(“%d%s”,编号(&N),名称2); printf(“%d%15s\n\n”,编号,名称2); printf(“输入序列号和名称三”); scanf(“%d%15s”,&no,name3); printf(“%d%15s\n\n”,编号,名称3); }

请告诉我我在哪里';我做错了 #包括 main() { 字符名称1[15],名称2[15],名称3[15]; 国际贸易编号; printf(“输入序列号和名称\n”); scanf(“%d%15c',&no,name1”); printf(“%d%15s\n\n”,否,名称1); printf(“输入序列号和名称两\n”); scanf(“%d%s”,编号(&N),名称2); printf(“%d%15s\n\n”,编号,名称2); printf(“输入序列号和名称三”); scanf(“%d%15s”,&no,name3); printf(“%d%15s\n\n”,编号,名称3); },c,debugging,C,Debugging,嗨,我是编程新手,出于某些原因,我从C开始。我上面键入的代码是我要执行的程序。当我用Code::Blocks执行它时,它一直运行,直到输入序列号并命名一个,然后如果我输入一个数字,它就没有响应。然后我尝试使用Visual Studio 2013进行编译,但它再次停止响应 之后,我尝试使用Visual Studio 2013调试器进行调试,它在temp.exe:0xC0000005:访问冲突写入位置0x00000000中的0x7575B790(msvcrt.dll)处显示此第一次意外异常。按“继续

嗨,我是编程新手,出于某些原因,我从C开始。我上面键入的代码是我要执行的程序。当我用Code::Blocks执行它时,它一直运行,直到输入序列号并命名一个,然后如果我输入一个数字,它就没有响应。然后我尝试使用Visual Studio 2013进行编译,但它再次停止响应

之后,我尝试使用Visual Studio 2013调试器进行调试,它在temp.exe:0xC0000005:访问冲突写入位置0x00000000中的0x7575B790(msvcrt.dll)处显示此第一次意外异常。按“继续”后,它在temp.exe:0xC0000005:访问冲突写入位置0x00000000中的0x7575B790(msvcrt.dll)处显示此未处理的异常。 在此之前,我已经在Code::Blocks中进行了编程,它们都工作得很好。请告诉我哪里出了问题。另外,请解释%s的用法

谢谢

应替换为:

scanf("%d %15c',&no, name1");
  • 使用双引号,因为单引号不会在C中终止字符串
  • 使用
    %14s
    (按照chux的建议),这样就不会使字符串的缓冲区溢出并导致seg故障

%s
用于读取以空格分隔的字符串。如果要读取整行,必须使用函数

read。在这里,您可以找到
printf
scanf
的文档。如果你不明白它们是怎么工作的,你可能就不知道出了什么问题。我很抱歉这么愚蠢。谢谢,顺便说一句:我只是想重申一下楚克斯的观点。注意chux写的是14而不是15。这将确保在添加null终止字符时,scanf不会导致缓冲区溢出。
scanf("%d %15c',&no, name1");
scanf("%d %14s",&no, name1);