我有一个程序,我在其中指定要使用 cin 读取的文件,所以我运行程序 ./prog < file.txt,但在下面的代码中,cin 没有抓取任何东西。有人可以解释为什么代码执行后行是空的吗?
void Building::build(){
char mode;
cin >> mode >> sizeFloors >> numFloors;
if(mode == 'M')
readMap(sizeFloors, numFloors);
}
^^ 这执行得很好
void Building::readMap(int floorSize, int numFloors){
string line;
int curFloor(numFloors - 1);
while( curFloor >= 0 ){
cin >> line;
if(line.empty()){
cout << "Error: input file too short" << endl;
exit(1);
}
}
^^ 这里 line.empty() 返回 true
这是输入文件
M
4
1
WWWW
WWWW
WWWW
WWWW
所以很明显行不应该返回空