读取文件内容时出现问题

发布于 2024-11-06 07:58:09 字数 406 浏览 1 评论 0原文

我有一个包含文本的文件。我逐行读取整个文件并附加到字符串对象。但是当我打印出最终的字符串时,我没有得到整个文件内容。我确信这是由于存在特殊字符,如 '\n'、'\r'、'\t' 等。

这是我的示例代码:

// Read lines until end of file (null) is reached
do
{
    line = ""; 
    inputStream->read_line(line);

    cout<<"\n "<<line;//here i get the content of each line
    fileContent.append(line);// here i am appending
}while(line.compare("") != 0);

I have a file which contains text. I read line by line of the entire file and append to a string object. But when i get the final string print out i am not getting the whole file content. I am sure it is due to the presence of special characters like '\n', '\r', '\t', etc.

here is my sample code:

// Read lines until end of file (null) is reached
do
{
    line = ""; 
    inputStream->read_line(line);

    cout<<"\n "<<line;//here i get the content of each line
    fileContent.append(line);// here i am appending
}while(line.compare("") != 0);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雨后咖啡店 2024-11-13 07:58:09

这是 C++ 中将文件读入内存的方法:

#include <string>
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;

int main() {
    vector <string> lines;
    ifstream ifs( "myfile.txt" );
    string line;
    while( getline( ifs, line ) ) {
         lines.push_back( line );
    }
    // do something with lines
}

This is the way to read a file into memory in C++:

#include <string>
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;

int main() {
    vector <string> lines;
    ifstream ifs( "myfile.txt" );
    string line;
    while( getline( ifs, line ) ) {
         lines.push_back( line );
    }
    // do something with lines
}
戴着白色围巾的女孩 2024-11-13 07:58:09

您必须向我展示更多代码才能知道您的问题是什么。

如果您将整个文件读入单个字符串,这是我通常使用的方法:

#include <string>
#include <fstream>
#include <iterator>

std::string read_file(const char *file_name)
{
    std::filebuf fb;

    if(!fb.open(file_name, std::ios_base::in))
    {
        // error.
    }

    return std::string(
        std::istreambuf_iterator<char>(&fb),
        std::istreambuf_iterator<char>());
}

You’ll have to show more code for me to know what your problem is.

If you’re reading the entire file into a single string, this is the method I usually use:

#include <string>
#include <fstream>
#include <iterator>

std::string read_file(const char *file_name)
{
    std::filebuf fb;

    if(!fb.open(file_name, std::ios_base::in))
    {
        // error.
    }

    return std::string(
        std::istreambuf_iterator<char>(&fb),
        std::istreambuf_iterator<char>());
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文