1613 г. = 2024 г.
Здравствуйте, RussianFellow, Вы писали:
RF>scanf("%s",stsnumber);
RF>В чём дело?
Дело в том, что %s считывает не строку, а слово — непустую последовательность непробельных символов.
Программа не остановилась, а просто ждёт этого слова.
Если сто раз нажать <Enter>, а потом <1> <Enter>, то stsnumber получит "1".
Чтобы считать именно строку целиком до \n, есть функция gets().
Но эти сишные функции чреваты переполнением буфера.
Поэтому или пиши на Си со всей мыслимой тщательностью — scanf_s, gets_s и т.п., — или пиши на C++ — std::iostream.
Только оператор чтения, std::cin >> s — он тоже читает слово. Нужно использовать getline().
char buf[3];
gets_s(buf, 3); // прочитали не более 2 символов, включая \n, и добавили концевой \0
std::string buf;
std::getline(std::cin, buf); // прочитали сколько угодно символов, включая \n