使用eclipse控制台时getline出现问题

时间:2014-10-23 21:44:30

标签: c++ eclipse getline

我最近开始使用eclipse作为我的C ++代码,并希望运行一个简单的函数,要求用户输入文件名,然后从文件中读取并汇总所有数字以测试它。

string filename;
do {
    cout << "Enter File Name: "; // Asks for user input
    getline(cin, filename);
}
while (filename.empty());

ifstream myfile (filename);
if (myfile.is_open()) {
    // sums up text file & outputs it
}
else {
    cout << "Error Opening " << filename << endl;
}

当我通过我的可执行文件夹中的Windows命令提示符运行它并输入文件名时,程序运行正常。但是,当我尝试使用完全相同的输入通过eclipse的控制台运行它时,我将工作目录设置为文件最明确存在的项目根目录,文件无法打开。

如果我改变一行:

ifstream myfile("test1.txt");

然后代码再次完美地工作。所以现在我已经缩小了,由于某种原因,Eclipse控制台通过getline解释我的文本输入与windows命令提示符不同,但我不确定我能做什么,所以它的行为一致。

调用

cin.ignore()

在调用getline()之前,只需删除输入的第一个字符(因此它会尝试&#34; \ test1.txt&#34;)。

知道eclipse对其控制台究竟做了什么让getline变得不可靠?如果是这种情况,我应该怎么做才能解决它?

0 个答案:

没有答案