看一上小弟我这个循环为什么会死进去
看一下我这个循环为什么会死进去while (true){int x,ycin x yif (x NULL || y NULL) break
看一下我这个循环为什么会死进去
while (true)
{
int x,y;
cin >> x >> y;
if (x == NULL || y == NULL) break;
TmpPo.setCoordinate(x,y);
PointList.push_back(TmpPo);
x = y = NULL;
}
大概是这样的有一个Point类,有x,y坐标,我的目的是如果输入了一串数,第一种情况:奇数个数,这时候最后一遍循环的y还没有初始化,我这里不太确定用NULL对比对不对,但是是要判定Y是不是存在,如果不存在就跳出,同理第二种情况如果偶数个数那么x就没有初始化,
我有点说不太清楚究竟需要大家帮我解决什么问题了,大概我有这样的需求,请教大家的高见.
[解决办法]楼主编译器以及操作系统报一下
XP VS2010 两个输入中有一个为0,正常break。
[解决办法]NULL的定义是0,是一个确定的数值,不表示“没有初始化”或“不存在”,也不表示“按下回车”。
NULL一般只用于指针,不应用于int型,虽然这样用也可编译,但最好不要这么用。整数就用0。
C++中没有值表示“没有初始化”,你必须自己设定一个初始值,然后比较这个初始值来判断是否初始化。
无论整数还是指针,“汉有初始化”的变量是一个不确定的值,任何读取比较的操作都是错误操作。