首页 > 解决方案 > C++ 读取包含空字符的流的行

问题描述

我有以下问题 - 有一个包含信息的文件(我不知道文件的大小),如下所示:

\0\0\0\0\0\0123456789\0\0\0\0\0\0Name
\0\0\0\0\0\0111111111\0\0\0\0\0\0Name1
\0\0\0\0\0\0222222222\0\0\0\0\0\0Name2

我的目标是阅读中间的数字和行尾的名称。我正在尝试使用这样的字符串逐行读取:

std::ifstream fileStream(file, std::ios::binary);

if (fileStream.is_open()) 
{
    string line;
    while (getline(fileStream, line)) 
    {
        cout << line;
    }
}

但我的输出是:没有

>
>
>

我猜那是因为那里有空字符,并且当遇到第一个空字符时字符串被终止,所以这就是没有输出的原因。我只是不知道如何阅读整个内容然后修剪空字符。

任何帮助,将不胜感激。

标签: c++ifstreamnull-character

解决方案


推荐阅读