C Store program.exe已停止工作,如何解决?
我正在尝试编译以下代码。当我向程序输入时,按enter键后会出现一个弹出窗口,显示 store program.exe已停止工作 注意:我使用的是Windows 8.1 注:我正在编写一个程序(用于超级商店),其中包括以下内容:C Store program.exe已停止工作,如何解决?,c,printf,scanf,C,Printf,Scanf,我正在尝试编译以下代码。当我向程序输入时,按enter键后会出现一个弹出窗口,显示 store program.exe已停止工作 注意:我使用的是Windows 8.1 注:我正在编写一个程序(用于超级商店),其中包括以下内容: 产品代码 产品名称 产品价格 总账单计算 这只是开始 #include <stdio.h> int main (void) { int d, code; char product[100], price[100]; printf("\
- 产品代码
- 产品名称
- 产品价格
- 总账单计算
#include <stdio.h>
int main (void)
{
int d, code;
char product[100], price[100];
printf("\t\t Welcome to the Metro Store\n\n\n\n Enter your product code: ");
scanf("%d",code);
if(code<100)
printf("Pharmacy\n Name of the Medicine");
fflush(stdout);
fgets(product, 100, stdin);
printf(product);
return 0;
}
#包括
内部主(空)
{
int d,代码;
炭产品[100],价格[100];
printf(“\t\t欢迎来到Metro商店\n\n\n\n输入您的产品代码:”;
scanf(“%d”,代码);
如果(代码对于初学者,您应该尝试
scanf("%d", &code);
您必须告诉scanf要写入到哪里。如果您不指定与(&)号,scanf将不知道应该写入到哪里
你应该阅读并明确地介绍指针。如果你不理解指针,C和C++编程毫无意义;-——
然后您可以将fgets()
更改为scanf(“%s”,产品);
在这种情况下,scanf不需要和,因为产品是和产品[0]
的缩写。这可能会让人很困惑,所以在继续之前先掌握指针。
- 首先,
scanf()
需要一个指针类型变量作为格式说明符的参数。使用
scanf("%d", &code);
^^
- 第二,不要混淆
scanf()
和fgets()
。否则,fgets()
将只使用scanf(“%d”)留下的换行符(
)
。尝试使用fgets()
,以便更安全地接受用户输入。但是,如果必须同时使用这两种换行符,请使用类似的方法
scanf("%d", &code);
int ch; while ((ch = getchar())!= EOF && ch != '\n');
fgets(product,100,stdin);
为了避免换行符的遗留问题
您有充分的理由以不同于产品的方式阅读代码吗?不要将scanf()
和fgets()
scanf(“%d”,code);
-->-->scanf(“%d%*c”,&code);
停止工作是一条非常通用的错误消息,几乎不值得诊断问题。它甚至不是一条正确的错误消息;您的大多数软件将“停止工作”因为这显然是一个控制台程序,不要在浏览器中双击它,在命令控制台中运行,并且可以得到更多有用的数据。指针是一个好的开始,请不要指向C++的DOC来标记问题“代码>代码<代码>。在这种情况下它是无害的,但是肯定有更好的参考垫。erial=)@AndreasGrapentin您是对的,在scanf的情况下没有区别。我只链接到了“C”