代码出错,怎么了?

时间:2015-11-12 13:16:30

标签: c macos double scanf

我遇到了问题。这个代码中的错误是什么?它会给出一个分段错误:11

{
double os;
double windows = 2;

printf("Network info\n");

printf("Are you on Linux, OS X, or Windows? (1,2,3): ");
scanf("%s", os);
printf("checking..\n");
if (os == windows){
    printf("Getting informatin for windows..\n");
    system("ipconfig");
  }else{
    printf("Getting info for either osx or Linux..\n");
    system("ifconfig");
  }
}

1 个答案:

答案 0 :(得分:3)

在您的代码中,您应该更改

scanf("%s", os);

scanf("%lf", &os);

as,os属于double类型。使用错误的格式说明符(或错误的参数类型)会调用FirstDisplayedScrollingRowIndex

阅读scanf()的{​​{3}}以获取更多信息。

FWIW,对于整数值,最好使用int数据类型。