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
明らかに、行は空を返すべきではありません