如何忽略 C++ 文件中的空格

How to ignore whitespace in a file for c++

我是 c++ 的初学者,我的家庭作业之一是将文件中的两个二进制数相加。这些数字在文件中由 space 分隔。假设所有二进制数都是 8 位。所以我们从文件中读取它们并将 8 位存储到一个名为 byte 的变量中,该变量是每个 Byte 对象的成员。

例如)

10111010 11110000

11111111 00000000

这是编写忽略白色 space 编码的正确方法吗?

int Byte::read(istream & file){
    file.skipws;
    file.get(byte, 8);
}

或者这是更好的方法?

int Byte::read(istream & file){
file.getline(byte, 8, ' ');
}

感谢您的帮助。如果在其他地方回答了这个问题,我们深表歉意。我所能找到的只是不涉及文件的示例。

文本流默认启用跳过空格。

std::string num1, num2;
if (file >> num1 >> num2)
{
   // use them
}

显然,您不能使用 std::string:

#include <fstream>

std::istream& read8(std::istream& ifs, char(&arr)[8])
{
    return ifs >> arr[0] >> arr[1] >> arr[2] >> arr[3] >> arr[4] >> arr[5] >> arr[6] >> arr[7];
}

int main()
{
    std::ifstream file("input.txt");

    char a[8], b[8];
    while (read8(file, a) && read8(file, b))
    {
        // add a and b
    }

}