Решение было довольно простым и включало добавление и установку async в false в .ajax (). Кроме того, я переработал код для работы кнопки отправки, а затем передал форму, когда AJAX успешно прошел.
Вот мой рабочий код:
$(document).ready(function() {
var testing = false;
$('#btn-login').on('click', function() {
$.ajax({
url: $('form').attr('action'),
type: 'post',
data: $('form').serialize(),
async: false,
success: function(data) {
if (data == 'true')
{
testing = true;
$('form').attr('action', 'https://example.com');
$('form').submit();
}
else
{
alert('Your username/password are incorrect');
}
},
error: function() {
alert('There has been an error, please alert us immediately');
}
});
return testing;
});
});
scanf("%d",&age);
Когда выполнение программы достигает указанной выше строки, вы вводите целое число и нажимаете клавишу ввода. Целое число занято scanf
, а символ \n
(символ новой строки или Enter), который вы нажали, остается в stdin
, который занят getchar()
. Чтобы избавиться от него, замените ваш scanf
с
scanf("%d%*c",&age);
%*c
сообщает %*c
сканировать символ, а затем отбрасывает его. В вашем случае %*c
читает символ новой строки и отбрасывает его.
] Другим способом было бы сбросить stdin
, используя следующее после scanf
в вашем коде:
while ( (c = getchar()) != '\n' && c != EOF );
Обратите внимание, что c
является int
в приведенной выше строке
У вас возникли проблемы с получением результата, потому что вы запускаете программу из оконной среды, и окно закрывается, как только выполняются внутренние задачи. Если вы запустили скомпилированную программу из командной строки в уже существующем окне оболочки (Linux, Mac или Windows), результаты останутся на экране после того, как вы вернетесь в приглашение (если только вы не закончили выполнение четкий экран). Более того, в этом случае вам не нужен посторонний вызов getchar ().
Для Windows после открытия окна командной строки вы должны выпустить команду «cd» для изменения в каталоге который содержит скомпилированную программу, а затем введите его имя. Для Linux (и, я полагаю, Mac, поскольку Mac является UNIX под капотом), вам нужно будет ввести ./ перед именем программы после перехода в соответствующий каталог с «cd».