Я хочу написать программу, которая читает произвольное количество положительных целых значений из stdin (разделенных новыми строками или пробелом) и выводит соответствующие число # в новых строках. Пример:Как читать неопределенное количество переменных из scanf (разделенных пробелом или новыми строками)
Input:
5 4 3 2 1
Output:
#####
####
###
##
#
Input:
16
0
4
12
Output:
################
####
############
Input:
1 1 3
2 1
Output:
#
#
###
##
#
Мой код:
#include <stdio.h>
int main(){
char buffer[1000];
if (fgets(buffer, sizeof(buffer), stdin) != 0){
int i,j,a;
for(i=0; sscanf(buffer+i,"%d%n",&a,&j)!=EOF; i+=j){
while(a-->0){
printf("*");
}
printf("\n");
}
}
return 0;
}
Он отлично работает в течение первых двух примеров, но то, что я должен делать с третьим, когда входы находятся в разных строках? Моя программа выводит «#» только в третьем примере, что означает, что она только считывает первую строку вывода.
Внутри цикла 'scanf ("% d ",% x);' будет работать нормально. Как только вернется новая строка в столбец 'fgets'. Или иначе, чтобы читать строки за строкой, поместите 'fgets' внутри цикла while. – ameyCU
Вы можете назвать 'fgets' более одного раза? 'fgets' читает одну строку. – immibis