Программа пролистывает функцию scanf()
Когда запускаю программу обычным способом './a.out'
она работает нормально, но когда запускаю вот так 'cat text.txt|./a.out'
то программа просто проходится по коду без остановок на 'scanf()' и просто заканчивается. Даже если убрать весь код и оставить только переменную и scanf() то при такой команде 'cat text.txt|./a.out' оно все ровно не позволяет нечего вводить и просто заканчивается. В файле text.txt храниться текст которым я контактирую с пользователем. Программу я только начал писать и вот всё что есть. Подскажите пожалуйста, как это исправить?
int *matrix1;
int *matrix2;
int links = 0;
int colums;
int error_input;
int true_input = 1;
int write_size_matrix;
int write_value_matrix;
int exit;
char autor[44];
fgets(autor, 44, stdin);
char group[23];
fgets(group, 23, stdin);
char number_lab[53];
fgets(number_lab, 53, stdin);
char thema[125];
fgets(thema, 125, stdin);
char how_links[47];
fgets(how_links, 47, stdin);
char how_colums[53];
fgets(how_colums, 53, stdin);
char value_matrix1[82];
fgets(value_matrix1, 82, stdin);
char value_matrix2[82];
fgets(value_matrix2, 82, stdin);
char error_format_value[61];
fgets(error_format_value, 61, stdin);
char error_eq_size[123];
fgets(error_eq_size, 123, stdin);
char overwrite_value[222];
fgets(overwrite_value, 222, stdin);
char result_mul[70];
fgets(result_mul, 70, stdin);
printf("\n%s\n%s\n%s\n%s",autor,group,number_lab,thema);
while(true_input == 1)
{
printf("\n%s",how_links);
scanf("%d", &links);
if( error_input != 1)
{
printf("\n%s",how_colums);
if((error_input = scanf("%d", &colums)) != 1)
{
true_input = 0;
}
}
}
printf("\n%s",how_links);
scanf("%d", &links);
return 0;