程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-代碼位置不同為什麼會報錯?【C語言基礎問題】

c語言-代碼位置不同為什麼會報錯?【C語言基礎問題】

編輯:編程綜合問答
代碼位置不同為什麼會報錯?【C語言基礎問題】

gets()語句放在第8行會報錯,第10行就不會報錯,菜鳥不明白是怎麼回事了,求解。
代碼如下:

 # include <stdio.h>
# include <string.h>

int main()
{
    char string[100];
    char c;
    gets(string);
    int i, num = 0, word = 0;
    //gets(string);
    for(i = 0; (c = string[i]) != '\0'; i++)
    {
        if(c == ' ') word = 0;
        else if(word == 0)
        {
            word = 1;
            num++;
        }
    }
    printf("%d", num);
    return 0;
}

報錯提示如下:
--------------------Configuration: 25 - Win32 Debug--------------------
Compiling...
25.c
F:\Microsoft Visual Studio\mine\25.c(9) : error C2143: syntax error : missing ';' before 'type'
F:\Microsoft Visual Studio\mine\25.c(11) : error C2065: 'i' : undeclared identifier
F:\Microsoft Visual Studio\mine\25.c(13) : error C2065: 'word' : undeclared identifier
F:\Microsoft Visual Studio\mine\25.c(17) : error C2065: 'num' : undeclared identifier
執行 cl.exe 時出錯.

25.obj - 1 error(s), 0 warning(s)

最佳回答:


c89標准:
c語言局部變量聲明只能在函數最前面
c99:
此限制取消
VS對c的標准支持不好,換gcc編譯器或者把文件改成cpp

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved