这里是我的代码:如何采取比只用一个词多个文本文件
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
//ifstream for input from files to program
//ofstream for output to file
string str;
ofstream PI_file("test.txt");
PI_file <<"Has this reached the file";
PI_file.close();
ifstream TO_file("test.txt");
TO_file >> str;
cout << str;
}
当我输出海峡,它只是打印“有”,所以只能从文件TO_file第一个字已经达到海峡。为什么是这样?另外,我该如何解决这个问题,以便我可以接收整个文件?
此外,另一个问题我是,如果我想通过一个字符串中的每个字母或文字使用一个for循环回路,我可以使用:
for (int i=0; i<string.length(); i++)
但是,如果我通过一个想循环文件,直到我到达文件中的最后一个字或字母,我怎么能做到这一点?我可以使用“test.txt”.length()或者TO_file.length()吗?还是有另一种方法来做到这一点?
您是否尝试过缩进代码以使其可读性为 –
这是[流输入](http://en.cppreference.com/w/cpp/string/basic_string/operator_ltltgtgt)的工作原理。如果您想要整行,请改用['std :: getline'](http://en.cppreference.com/w/cpp/string/basic_string/getline)。 –
对于更大的数量,有'std :: istream :: read',您可以在其中指定要读取的数量。 –