不使用字符串从文件中读取

Reading from file without using string

我正在做一个我们不能使用 std::string 的学校项目。我怎样才能做到这一点? txt文件中的数据是用“;”分隔的,我们不知道字的长度。

示例:

apple1;apple2;apple3
mango1;mango2;mango3

我尝试了很多东西,但没有任何效果,总是出错。

我尝试使用 getline,但由于它是针对字符串的,因此无法正常工作。 我也尝试重新加载 operator<< 但它没有帮助。

有两个完全独立的 getline()。一种是std::getline(),它以一个std::string作为参数。

但是 std::istream 中还有一个成员函数,它使用 char 的数组而不是 std::string,例如:

#include <sstream>
#include <iostream>

int main() {
    std::istringstream infile{"apple1;apple2;apple3"};

    char buffer[256];

    while (infile.getline(buffer, sizeof(buffer), ';'))
        std::cout << buffer << "\n";
}

结果:

apple1
apple2
apple3

注意:虽然这符合学校禁止使用 std::string 的规定,但几乎没有其他情况有意义。