错误'sscanf_result'未声明(首次在此函数中使用)

时间:2013-10-13 15:23:20

标签: c function scanf

那是我的代码,我得到了这个错误

在功能'main'中:

41 1 [错误]'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)

由于错误消息清楚地描述了它,因此程序中没有scanf_result变量的声明。

放一个:

int scanf_result;

在声明部分修复错误。

答案 1 :(得分:0)

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

您的scanf()用法错误。你需要sscanf()

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

  

[错误]&#39; scanf_result&#39;未申报(首次使用此功能)

错误描述了您缺少的内容。

声明scanf_result

sscanf()返回整数

声明为整数变量。