【发布时间】:2017-09-17 19:12:48
【问题描述】:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string line = "test";
ifstream myfile("example.txt");
myfile.open("example.txt");
if (myfile.is_open())
{
cout << line << "\n";
cout << "File Opened\n";
getline(myfile, line);
cout << line;
while (getline(myfile, line))
{
cout << line << '\n';
cout << "test";
}
myfile.close();
}
else cout << "Unable to open file";
//return 0;
//getchar();
}
如果这个问题已经得到解答,请提前道歉,但是虽然我找到了几个非常接近我需要的答案,但我找不到这个特定问题的答案。
我是 Visual Studio 的新手,但过去曾涉足 C++。我正在尝试从文本文件中读取数据,并且(现在)只需使用 cout 将其打印出来。但是,我没有看到任何结果。
起初我认为我只是将我的 txt 文件放在了错误的位置 - 我确实做到了。最初我会收到“无法打开文件”行,表示无法打开文件。所以我移动了它,发现了 Visual Studio 想要我把文件放在哪里。
所以现在我成功地看到“文件打开\n”行打印到屏幕上,然后什么也没有。我认为我可能使用错误的 getline,但如果我将文件输入“myfile”替换为“cin”,getline 将愉快地整天读取键盘输入,所以也不是这样。
所以我加入了一些测试 cout 语句,打印出我的字符串 line 的值。第一个打印出应有的“测试”。然后我将 txt 文件的一行读入该字符串变量,当我再次 cout 时,我什么也没得到。这是一个空字符串。
此外,循环内的“cout
因此,据我所知,该程序能够找到我的文本文件 example.txt。但它实际上并没有看到里面的内容。
文本文件的内容(以及我希望程序打印出来的内容)如下:
"这是第一行
这是第二行
第三
第四
第五”
非常感谢任何和所有的帮助。
【问题讨论】:
标签: c++ visual-studio