#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文件放在了错误的地方 - 我做到了。最初我会收到第34行“无法打开文件&#34;”,表示无法打开该文件。所以我移动它,发现Visual Studio希望我放置文件的位置。
所以现在我成功地看到&#34;文件已打开\ n&#34;行打印到屏幕上,后面没有任何内容。我以为我可能会使用getline错误,但如果我替换文件输入&#34; myfile&#34;用&#34; cin&#34;相反,getline会很乐意整天读取键盘输入,所以不是这样。
所以我已经输入了一些打印出我的字符串值的测试cout语句。第一个打印出&#34; test&#34;正如它应该。然后我读了一行txt文件到那个字符串变量,当我再次cout它时我什么都没得到。它是一个空白字符串。
此外,该行&#34; cout&lt;&lt; &#34;测试&#34 ;; &#34;从循环内部也不打印。所以循环似乎没有发生,似乎。
所以,尽管我可以说,程序能够找到我的文本文件example.txt。但它实际上并没有看到内容。
文本文件的内容(以及我要打印的程序)如下:
&#34;这是第一行
这是第二行
第三
四
第五&#34;
非常感谢任何和所有帮助。
答案 0 :(得分:1)
想出来。
这条线出了什么问题:
ifstream myfile("example.txt");
我不确切知道原因,但是因为我指定要在下一行打开的文件(myfile.open(&#34; example.txt&#34;);),指定文件路径ifstream声明导致了这个问题。
我没有完全理解它,因为其他人已经说过代码运行正常。但无论如何,这似乎都有效。
如果我有任何理由不能使用此解决方案,请告知我们。
答案 1 :(得分:0)
你可能想看一下你的文件打开 &#34; myfile.open(&#34;&example.txt的#34);&#34;我发现如果你不给文件路径发生奇怪的事情。 myfile.open(&#34; C:\测试\ example.txt文件&#34); 是我对代码所做的调整,它就像一个梦想。