如何从文件写入字符串

时间:2015-03-15 19:01:59

标签: c++ file ifstream

我是C ++的新手,我无法理解如何从文件导入文本。我有一个.txt文件,我输入,我想把该文件中的所有文本放入一个字符串。要阅读文本文件,我使用以下代码:

ifstream textFile("information.txt");

这只是阅读文本文件名信息。我创建了一个名为text的字符串,并将其初始化为""。我的问题是使用以下代码,我试图将.txt文件中的文本放到字符串上:

while (textFile >> text)
    text += textFile;

我显然做错了什么,虽然我不确定它是什么。

2 个答案:

答案 0 :(得分:1)

while (textFile >> text)不会保留空格。如果要保留字符串中的空格,则应使用其他函数,如textFile.get()

示例:

#include <iostream>
#include <string>
#include <fstream>



int main(){  
    std::ifstream textFile("information.txt");
    std::string text,tmp; 
    while(true){
        tmp=textFile.get();
        if(textFile.eof()){ break;}
        text+=tmp;
        }
        std::cout<<text;

return(0);}

答案 1 :(得分:0)

while (textFile >> text) text += textFile;

您正在尝试将该文件添加到字符串中,我认为这将是编译器错误。

如果你想按自己的方式去做,你需要两个字符串,例如

string text;
string tmp;
while(textFile >> tmp) text += tmp;

请注意,这可能会省略空格,因此您可能需要手动重新添加它们。