Простой подход состоит в том, чтобы прочитать числа из вашего файла (пример ниже читает stdin
), а затем зациклить число раз, выводя символ заполнения '#'
, за которым следует новая строка.Повторяйте, пока вы читаете действительный целочисленный ввод из вашего файла.
Краткий пример будет:
#include <stdio.h>
#define FILL '#'
int main (void) {
int n;
while (scanf ("%d", &n) == 1) { /* for each valid input */
printf ("%2d: ", n); /* output the number n */
for (int i = 0; i < n; i++) /* loop n times */
putchar (FILL); /* outputting FILL char */
putchar ('\n'); /* tidy up with newline */
}
return 0;
}
Пример использования / Вывод
$ echo "1 3 5 10 12 18 14 11 9 4 2" | ./bin/graphsideways
1: #
3: ###
5: #####
10: ##########
12: ############
18: ##################
14: ##############
11: ###########
9: #########
4: ####
2: ##
или для ваших номеров:
$ echo "5 40 51 26 46 14" | ./bin/graphsideways
5: #####
40: ########################################
51: ###################################################
26: ##########################
46: ##############################################
14: ##############
Вы можете просто добавить указатель FILE*
и открыть (и проверить, открыт ли файл) перед чтением файла с помощью fscanf
вместо scanf
.
Дайте мне знать, если у вас есть дополнительные вопросы.