先说如何找错:
一条语句一条语句的puts(" SB, 这里没错! ");
(1)
1.0 if语句里的错误 在调试的时候不会报错,要自己找。用if语句的时候要特别小心。
例如:if (num = EOF) // 这时候并不会出现报错现象。有时候真的很烦人。
2.0 找错的一些简单方法:
2.0.0 在你很多地方写代码:cout<<" n到这里了 "<<endl;
2.0.1 很多时候是编译错误,可以慢慢来,一点一点的试。或者,可以在很多输出的地方加上if判断语句,检查是否完成了某一步骤。
(2)
1.0 在使用可变长参数列表时,va_arg(ap, double); 第一个参数是指定你要处理哪个可变长列表,第二个参数是在此参数列表中你要处理的数据类型,但目前设置为float int 类型都会出错,只好统统设置成double。
(3)
在使用for循环时,尽量不要使用unsigned int i= max, 搭配i–; 因为for循环执行之后,还会继续执行一次再判断,**容易造成无符号整型的溢出,**这个坑我两次了。
waiting for adding…
(4)
cin>>T回车之后,T获取了值,但是’\n’被getline获取了,因为getline是以’\n’来判断一行的结束的,所以读到’\n’马上就结束了,也就没有读取到真正的那行字符串。
解决办法是在getline(cin,line)之前添加一句:**cin.ignore();**忽略之前的’\n’,这样getline就恢复正常