C ++读取包含空字符的流的行

时间:2018-08-21 14:03:38

标签: c++ ifstream null-character

我遇到以下问题-有一个文件包含这样的信息(我不知道文件的大小):

\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;
    }
}

但是我的输出是:没有

>
>
>

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

任何帮助将不胜感激。

0 个答案:

没有答案