有个问题想问下...
程序代码:
#include <iostream> #include <conio.h> #include <cctype> using std::endl; using std::cin; using std::cout; void eatspace(char* Str); //用于取消在输入时输入的空格. char FirstP(char* Str); //处理一级运算. char SecondP(char* Str,int& index); //处理二级运算. char number(char* Str,int& index); //将字符串中的数字组合起来. int_main(void) { const int MAX = 20; char Str[MAX] = {0}; double reasult = 0; for(;;) { cin.getline(Str,MAX); //输入字符串. eatspace(Str); //调用eatspace函数. if( !Str[0] ) // 注意:( !Str )等价于 ( Str == 0 ). return 0; reasult = FirstP(Str); //处理一级运算,在FirstP函数中包含了SecondP函数一级以及number函数. cout << "Reasult = " << reasult; //输出结果 } _getch(); return 0; } void eatspace(char* Str) //创建eatspace函数. { int a = 0; int b = 0; while( *(Str + a ) = *(Str + b++ ) != '\0' ) { if( *( Str + a ) != '\0' ) a++ ; } return; } char FiretP(char* Str) { int index = 0; double value = 0.0; value = SecondP(Str,index); for( ; *(Str + index) != '\0'; ) { switch( *(Str + index++) ) { case '+' : value += SecondP(Str,index); break; case '-' : value -= SecondP(Str,index); break; default : cout << endl << "Warning!" <<endl; } } return value; } char Second(char* Str,int& index) //创建SecondP函数. { double value = 0.0; value = number(Str,index); while( *(Str + index) == '*' || *(Str + index) == '/' ) { if( *(Str + index) == '*' ) { index++; value *= *(Str + index); } else if( *(Str +index) == '/' ) { index++; value /= *(Str +index); } } return value; } char number(char* Str,int& index) //创建number函数. { double value = 0.0; while( isdigit( *( Str + index) ) ) value += 10 * value + ( *(Str + index++) - '0' ); if( *(Str + index) == '.' ) { index++; double lessen = 0.1; while( isdigit( *(Str + index) ) ) { value += lessen * ( *(Str + index++) - '0' ); lessen *= lessen; } } return value; }1>c:\users\deathway\documents\visual studio 2008\projects\计算器(多则运算)\计算器(多则运算)\no.1.cpp(15) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
为什么会这样?该如何解决,谢谢!