将文本文件读入整数数组

时间:2019-10-07 17:57:54

标签: c++ arrays

给出一个包含一些空行,一些仅包含整数的行的文件,我将如何制作一个包含所有整数的数组?我已经找到了字符串的方法,但是我需要一个整数列表。我想使用getline做到这一点,但是getline为“ line”提供了一个字符串

一个不起作用的示例,该示例返回文件中的整数数并修改给定的数组:

int getLinesFromFile(string fileName, int arr[], int arrLen) {
    ifstream userFile;
    userFile.open(fileName);
    if (userFile.is_open()) {
        int line;
        int arrCount = 0;
        while (getline(userFile, line)) {
            if (tline.length() != 0 && arrCount < arrLen) {
                arr[arrCount] = line;
                arrCount++;
            }
        }
        return arrCount;
    }

    else {
        return -1;
    }
    userFile.close();
}

1 个答案:

答案 0 :(得分:2)

您可以只使用>>运算符读取值。它将忽略值之间的任何空格,包括空行。这是使用它的函数的修改版本:

int getLinesFromFile(std::string fileName, int arr[], int arrLen) {
    std::ifstream userFile(fileName);
    int count = 0;

    while(count < arrLen) {
            int value;
            userFile >> value;

            if (!userFile.good())
                    return -1;

            arr[count++] = value;
    }

    return count;
}

请注意,您不需要手动打开和关闭文件,RAII会为您处理。另外,如果无法成功打开文件,或者在读取文件时发生任何其他错误,userFile.good()将返回false,因此您可以使用它来检测并返回错误。尚不清楚您的函数是应该准确读取arrLen值还是较小的值也是有效的。但是至少您应该注意不要写超出提供的数组的末尾。