2013-10-13 47 views
0

嗯,这是我的代码和我得到这个错误错误“sscanf_result”未声明(在一次使用此功能)

在功能“主”:

411 [错误]“scanf_result”未申报(第一次使用在此功能)

41 1 [注]每个未声明的标识符是为它出现在

 #include <stdio.h> 
      #include <stdlib.h> 


     int main (int argc, char *argv[]) 

     { 
     int n; 
      float fl,fw,wh,ww,dh,dw; 
     float p,t; 
     float tl,tw,a; 
     float p1,p2,p3; 
      printf("What's the width of the floor?"); 
      scanf ("%d", &fw); 
      printf("What's the length of the floor?"); 
      scanf ("%d", &fl); 
      printf("What's the height of the wall?"); 
       scanf ("%d", &wh); 
       printf("What's the width of the wall?"); 
      scanf ("%d", &ww); 
     printf("What's the width of the door?"); 
      scanf ("%d", &dw); 
     printf("What's the height of the door?"); 
     scanf ("%d", &dh); 
      a=fw*fl+(wh*ww)*3-(dh*dw); 
     p1=a*22; 
     p2=a*23.80; 
      p3=a*14; 

      char line[100]; 
      int answer; 
     answer = -1; 
     while (answer != 0) 
     { 
     printf ("\nWhat tiles do you want?:\n"); 
      printf (" [1] 20sm X 30sm."); 
     printf (" [2] 30sm X 41,6sm"); 
     printf (" [3] 25sm X 33sm"); 
     printf ("\nWhat do you want to do? [0 for nothing] "); 
      fgets (line, sizeof(line), stdin); 
       scanf_result = scanf (line, "%d", &answer); 
      if ((scanf_result == 0) | (scanf_result == EOF)) 
      { 
       printf ("\n *** 1 - 2 or 3! ***\n"); 
      answer = -1; 
      } 
      switch (answer) 
     { 
        case 0: 
      break; 
     case 1: 
       printf(" Total price = %.2f lv \n",p1); 
     break; 
      case 2: 
     printf(" Total price = %.2f lv \n",p2); 
      break; 
      case 3: 
      printf(" Total price = %.2f lv \n",p3); 
      break; 
      default: 
      break; 
       } 

     } 

       system("PAUSE"); 
      return 0;  
     } 
+2

修复您的代码格式和缩进。 –

+0

请不要破坏你自己的问题。 –

回答

0

作为错误信息清楚地描述的那样,每个疗法功能只报告一次e在您的程序中没有声明scanf_result变量。在声明部分

int scanf_result; 

来修复错误:

放一个。

0
 scanf_result = scanf (line, "%d", &answer); 

scanf()用法是错误的。您需要改为sscanf()

scanf()函数应从标准输入流stdin读取。 sscanf()函数应从字符串line中读取。

[错误]未声明(在一次使用此功能)

错误地描述你所缺少的是什么 'scanf_result'。

scanf_result申报

sscanf()返回整数

声明为整数变量。

相关问题