$headerDiv = $('.header-wrapper');
$rowDiv = $('html');
$rowDiv.scroll(function(e) {
$headerDiv.css({
left: -$rowDiv[0].scrollLeft + 'px'
});
});
我正试图阻止用户输入字符类型的数据。但是,在提示“请输入整数:”之后,它不会等待输入。因此,每当我在第一个提示下输入字母时,它就会陷入无限循环。我该如何解决?任何heeelp将不胜感激!
答案 0 :(得分:0)
您需要先清理缓冲区,可以像这样使用fflush(stdin);
:
int integer, status=0;
if (status == 0)
{
do
{
printf("\nPlease enter an integer: ");
status = scanf("%d", &integer);
fflush(stdin);
}
while (status == 0);
}
使用fflush(stdin)
不在标准C语言中,但是您可以通过其他方式清理缓冲区。
您可以构建自己的函数来清理缓冲区,如下所示:
void flushKeyBoard()
{
int ch; //variable to read data into
while((ch = getc(stdin)) != EOF && ch != '\n');
}
要清洁屏幕,请调用此功能:
void clrscr()
{
system("@cls||clear");
}
最终代码:
#include <stdio.h>
void clrscr()
{
system("@cls||clear");
}
void flushKeyBoard()
{
int ch; //variable to read data into
while((ch = getc(stdin)) != EOF && ch != '\n');
}
int main()
{
int integer, status=0;
if (status == 0)
{
do
{
printf("\nPlease enter an integer: ");
status = scanf("%d", &integer);
flushKeyBoard();
clrscr();
}
while (status==0);
}
}
答案 1 :(得分:-2)
您的%integer,应声明为int。 像这样:
int integer;
printf("Please input an integer value: ");
scanf("%d", &integer);