void A::upwords() { char ch; while (!i.eof())//在stack overflow 上说用eof()不好,why? { i.get(ch); if (ch=='I') { i.get(ch); if (ch == 'S') { a += 1; std::cout << a; std::cout<< '\t' << ch << std::endl; } } }i.close(); }
和下面这个
void A::upwords() { char ch; i.get(ch); while (!i.eof()) { if (ch=='I') { i.get(ch); if (ch == 'S') { a += 1; cout << a; cout<< '\t' << ch << std::endl; } } i.get(ch); } i.close(); }
可是之前下面这个为什么运行不了?
顺便还问一个:
为甚吗while()里边用eof()不好?
.eof() 是检测状态位的,有可能会导致最后读入数据多了,建议使用判定get()的返回是否为EOF
至于放里,放外,就看你的in是什么数据了,
下面一段,可能出现,第一次get()就结束了,所以没有任何运行。
不是太明白你的代码里面i 的输入流是从哪里来的,所以没法判定其他的