0

嘿,我正在尝试接收函数参数中的文件并返回 2D char 数组、2D char 指针或 2D Vector .. 不确定我应该使用哪个。我正在考虑使用 2D 字符数组来保持简单。基本上我不知道要读取的文件中每一行的长度,所以我不确定常规数组的长度。我将一张普通的纸想象成一个非常大的二维数组。这就是我到目前为止所得到的,它仍然是 Void 因为我不知道要返回什么..

void ReadFile(std::string &file)
{

    //This is a file reader object. This time I am passing the name of the file as an argument into the constructor.

    std::ifstream TheReader(file);
    int lineLength = 0;
    int numLines = 0;

    char linebreak = 13;
    char singleCharacter;
    if (TheReader.is_open())
    {
        TheReader.get(singleCharacter);


        if (singleCharacter != linebreak)
        {
            lineLength++;
            TheReader.get(singleCharacter);
        }
        else if (singleCharacter == 13)
        {
            numLines++;
        }


        std::vector<std::vector<int>> myVector;
        lineLength = 0;
        numLines++;

        TheReader.close();

    }
    else
    {
        std::cout << "Error. Unable to open file" << std::endl;
    }

}

任何输入都是好的输入!干杯!

4

1 回答 1

1

你可能想返回一个 std::vector 类似的东西

std::vector<std::string> ReadFile(const std::string &file)
{
    std::vector<std::string> output;
    std::ifstream TheReader(file.c_str());
    std::string line;
    while (std::getline(TheReader, line))
        output.push_back(line);
    return output;
}
于 2014-07-15T16:47:55.983 回答