tracksのコーディングテストをC++で解こうと思っているのですが、チュートリアルにある標準入力を行ごとに受け取るコードでは、入力の最後の行の末尾に改行が入っていない場合、最後の行が読み込まれずwhile(!cin.eof()){}を抜けることができません。
このような最後に改行がなく、入力の形式を変更することができない場合、どのように入力の終了を判別したらいいのでしょうか。
C++
1#include <bits/stdc++.h> 2using namespace std; 3 4int main(){ 5 string line; 6 while (!cin.eof()) { 7 getline(cin,line); 8 cout << line << endl; 9 } 10 cout << "end" << endl; 11 return 0; 12}
入力
1 2 3 4 5 6 7 8 9
出力
1 2 3 4 5 6
回答2件
あなたの回答
tips
プレビュー