从输入文件中读取

时间:2011-10-11 00:42:39

标签: c++

#include <iostream>
#include <fstream>
using namespace std;

int main(int argc, char *argv[]) {
    int size = 0;
    int highNum = 0;
    int m;
    string fname;

    cout << "Supply the name of the input file you would like to use." << endl;
    cin >> fname;

    ifstream input;
    input.open(fname.c_str());
    input >> size;
    int numbers[size];

    for (int n = 0; n < size; n++)
        input >> numbers[n];

    for (m = 0 ; m < size ; m++)
    {
        if (numbers[m] > highNum)
            highNum = numbers[m];
    }
    int j;
    int k;
    bool values[] = {false, false, false, false, false, false};

    for (j = highNum; j > 0 ; j--)
    {
        for (k = size - 1 ; k >= 0 ; k--)
        {
            if (j <= numbers[k])
                values[k] = true;
        }

        if (values[0])
            cout << "| xxx";
        else
            cout << "|    ";
        if (values[1])
            cout << "   +++";
        else
            cout << "      ";
        if (values[2])
            cout << "   ***";
        else
            cout << "      ";
        if (values[3])
            cout << "   ---";
        else
            cout << "      ";
        if (values[4])
            cout << "   +++";
        else
            cout << "      ";
        if (values[5])
            cout << "   +++" << endl;
        else
            cout << "      " << endl;

    }

    return 0;
}

我正在尝试编写一个代码,通过从单独的文本文件中读取整数来打印条形图。我发布了完整的代码,但是如果您输入数字,我知道下半部分是有效的。我想知道在同一目录中有一个数据文件的问题是什么。当我运行此程序并输入我为测试它而创建的数据文件的名称时,程序会运行,但不会生成图表。

1 个答案:

答案 0 :(得分:0)

您的计划适合我。我想您的输入文件不存在于进程的当前工作目录中。我建议您在调用input后添加一项检查,以确定open是否有效。