c++死循环求助( 二 )


/* 不过会残留 \字符。 */
printf("%d\", i); } return 0; } /* C++ 版本 */ #include \u0026lt;iostream\u0026gt; #include \u0026lt;limits\u0026gt;// 为了使用numeric_limits
using std::cout; using std::endl; using std::cin; using std::numeric_limits; using std::streamsize;
int main() { int value; for ( ; ; ) { cout\u0026lt;\u0026lt; "Enter an integer: "; cin \u0026gt;\u0026gt; value; if ( cin.eof() || cin.bad() ) { // 如果用户输入文件结束标志(或文件已被读完), // 或者发生读写错误,则退出循环
// do something break; } // 读到非法字符后,输入流将处于出错状态, // 为了继续获取输入,首先要调用 clear 函数 // 来清除输入流的错误标记,然后才能调用 // ignore 函数来清除输入流中的数据。 cin.clear(); // numeric_limits\u0026lt;streamsize\u0026gt;::max() 返回输入缓冲的大小。 // ignore 函数在此将把输入流中的数据清空。 // 这两个函数的具体用法请读者自行查询。 cin.ignore( numeric_limits\u0026lt;streamsize\u0026gt;::max(), \u0026#39;\\u0026#39; ); cout\u0026lt;\u0026lt; value\u0026lt;\u0026lt; \u0026#39;\\u0026#39;; }
return 0; }


推荐阅读