ある教科書でC++を学んでいるものです。
iostreamの項目で以下のコードに出会いました。
気になったことが2点あります。
①画面からの入力が求められるタイミング
このコードを見るまでは、cinが書かれている場所で毎回画面からの入力を求められると思っていました。しかし、そうではなく、『cinに文字が溜まってる状態?では入力は求められない。求められるのはcinに文字が残っていないとき。』と考えるようになりました。 この解釈はあっていますか?
②istream.eof()がtrueを返すのはどんなとき?
fstream.eof()がtrueを返す条件は、理解できたのですが、istream.eof()がtrueを返すのは一体どのような状況なのでしょうか?
C++
1#include <iostream> 2using namespace std; 3 4bool SkipOnError(istream& istr){ 5 if(istr.fail()){ 6 if(istr.eof()){ 7 exit(EXIT_FAILURE); 8 } 9 10 char ch; 11 istr.clear(); 12 istr >> ch; 13 return true; 14 } else { 15 return false; 16 } 17} 18 19int main(){ 20 int n; 21 22 do{ 23 cin >> n; 24 }while(SkipOnError(cin)); 25 26 cout << "入力された値は" << n << "です。" << endl; 27}
実行結果
asdf2
入力された値は2です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/06 17:03