2011-10-11 109 views
0
#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; 
} 

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

+5

int int [size];'在标准C++中是非法的。 – Dani

+1

@Dani,是的,但是大批人正在使用g ++,甚至没有意识到它是非标准的。 :) – Joe

回答

0

您的程序适用于我。我想你的输入文件不存在于你的进程的当前工作目录中。我建议你在open的电话后添加一个支票,看看input是否有效。