Я не могу воспроизвести вашу проблему, но добавление fflush(stdout);
должно решить вашу проблему.
scanf("%s", str);
printf("read 1st\n");
fflush(stdout); // Ensures that the above is printed before scanf is executed
scanf("%s", str2);
printf("read 2nd\n");
Я бы также изменил сканы на scanf("%19s", str);
. В противном случае могут произойти плохие вещи, если вы введете строку длиннее, чем может удержать str
.