if((getline(cin,line)) == 0){}
getline()的返回值就是cin
这种写法在vc可以通过编译,但是vs就会出问题,原因:getline(cin,line)遇到文件结束符返回的是一个cin对应的类型的空。和数值0不是同种类型vs会认为不能直接进行比较。
解决方法:
1. 类型强转: if((int)(getline(cin,line)) == 0){} 既然类型不一样就强行转换成一样的。
2. 不做比较: if(getline(cin,line)){} 因为c++或c认为只有返回0时就为假无论什么类型,相反类似。