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