C语言 Store program.exe已停止工作,我该如何解决它?



我正在尝试编译以下代码。当我给程序输入时,按下回车键后会出现一个弹出窗口,显示

store program.exe已停止工作

注意:我使用的是Windows 8.1

注意:我正在编写一个程序(在超级商店中使用),它包括以下内容:

  • 产品代码
  • 产品名称
  • 产品价格
  • 账单合计计算

这只是个开始。

#include <stdio.h>
int main (void)
{
  int d, code;
  char product[100], price[100];    
  printf("tt Welcome to the Metro Storennnn Enter your product code: ");
  scanf("%d",code);
  if(code<100)
    printf("Pharmacyn Name of the Medicine");
  fflush(stdout);
  fgets(product, 100, stdin);
  printf(product);  
  return 0;
}

对于初学者,您应该尝试

scanf("%d", &code);

你必须告诉scanf写到哪里。如果你没有指定& (&), scanf将不知道应该写到哪里。

你应该阅读文档和指针的介绍。如果你不懂指针,用C和c++编程是毫无意义的;-)

那么你可以把fgets()改成scanf( "%s", product );

在这种情况下,scanf不需要&,因为product&product[0]的缩写。这可能会让人很困惑,所以在继续之前先掌握指针。

  • 首先,scanf()需要一个指针类型变量作为格式说明符的参数。使用

    scanf("%d", &code);
                ^^
    
  • 第二,不要混淆scanf()fgets()。否则,fgets()最终将只消耗scanf("%d"..)剩余的newline。尝试使用fgets()来获取用户输入以更安全。但是,如果必须同时使用,则使用

    之类的内容
     scanf("%d", &code);
     int ch; while ((ch = getchar())!= EOF && ch != 'n');
     fgets(product,100,stdin);
    

    避免剩余换行符的问题。

相关内容

  • 没有找到相关文章

最新更新