2011-10-11 125 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是否有效。