getline()返回值比较的问题

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时就为假无论什么类型,相反类似。
 

你可能感兴趣的:(学习,c++)