eclipse的CDT看来做得不尽如人意,貌似只能把eclipse当成JAVA的IDE或者Android App的IDE了,但是谷歌推出的Android Studio貌似火起来了,目测eclipse以后可能只会用于java开发。
不废话,入正题。继上次发现eclipse中CDT控制台无法输入EOF的问题后(已解决),CDT控制台又一bug出现了。测试代码如下:
#include
#include
#include
using namespace std;
int main(int argc, char **argv)
{
string str;
cout << "Enter several string:" << endl;
char c;
while(cin >> c)
str.append(1, c);
cout << "result: " << flush;
for(string::iterator iter = str.begin(); iter != str.end(); ++iter)
cout << *iter << flush;
cout << endl;
cin.clear(); //上一次输入中输入了EOF,cin的eofbit已置位,若不清掉,流无法再用。
cout << "something to add: " << flush;
string str2;
while(cin >> str2)
str.append(str2.begin(), str2.end());
cout << "result: " << flush;
for(string::iterator iter = str.begin(); iter != str.end(); ++iter)
cout << *iter << flush;
cout << endl;
return EXIT_SUCCESS;
}
在CDT的控制台中,输入google,运行结果如下:
我第二个单词还没输入的时候,程序就已经运行完了。
然后我在工程中的prosperity中找到可执行文件的路径,复制后在终端里到达该路径下,直接执行该程序,结果如下:
嗯,十分明了的对比。呵呵一笑而过就行了吧。
虽然本来就没对CDT的调试器抱多大的期望,因为我还是习惯自己用gdb调试,但是没想到还没用到调试器,其控制台就已经这么多bug了。看来以后只能用CDT编辑代码了,编译跟调试神马的还是自己来吧,反正一开始学的时候也是这样的。