Implementujte program, který přečte ze standardního vstupu celé číslo, které by mělo být v rozsahu 1 až 10 a vytiskne následující trojúhelník, např. pro n=4.
**** *** ** *
Při implementaci funkční program postupně rošiřujte o ošetření chybných vstupů, reportování chyb, případně dekompozici tisknutí trojúhelníku na tisknutí řádků, např. v následujících krocích.
scanf() a dvou (vnořených) for cyklů s putchar('*') a odřádkováním putchar('\n');
clang main.c && echo “1” | ./a.out ; echo $?.
scanf() (viz man scanf), např. pro neceločíselný vstup nebo prázdný vstup (např. přesměrovaný ze souboru touch in.txt; ./a.out < in.txt nebo ukončení vstupu CTRL+D).
100 a 101 s výstupem.
“ERROR: Cannot read integer value from the standard input\n”
“ERROR: Given value %d is not within the range [1, 10]\n”
MIN_VALUE a MAX_VALUE s možností ovlivnění maximální hodnoty při kompilaci , např. clang -DMAX_VALUE=100. Otestujete chování programu pro ruzné vstupy a kompilace s různými hodnotami.
void print_triangle(char c, int lines); a
void print_line(char c, int n);
int read_input(int *n); a
int print_error(int ret, int n);
stderr funkcí fprintf() a otestujete chování program s přesměrováním vstup a výstup, např. ./main <input > out.std 2> out.err.
argc a argv s využitím funkce sscanf().
main_env.c) s nastavení LOCALE (understanding-locale-environment-variables)
int main(int argc, char *argv[], char *envp[])