#c
#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.
int numbers[size];
недопустимо в стандартном c .2. @Dani, да, но легионы людей используют g и даже не понимают, что это нестандартно. 🙂
Ответ №1:
Ваша программа работает для меня. Я полагаю, что ваш входной файл отсутствует в текущем рабочем каталоге вашего процесса. Я предлагаю вам добавить проверку, чтобы убедиться, что input
она действительна после вызова open
.