
正文
c语言函数调用了跳过 c语言跳过语句
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
关于C语言里的gets()问题,为什么名字输入被跳过?
C语言里的gets()函数功能是从输入缓存中读取多个字符,遇到回车符时,结束输入。
当使用gets()函数之前有过数据输入,并且,操作者输入了回车确认,这个回车符没有被清理,被保存在输入缓存中时,gets()会读到这个字符,结束读字符操作。因此,从用户表面上看,gets()没有起作用,跳过了。
解决办法:
方法一、在gets()前加fflush(stdin);
//强行清除缓存中的数据(windows下可行)
方法二、根据程序代码,确定前面是否有输入语句,如果有,则增加一个getchar()命令,然后再调用
gets()命令。
方法三、检查输入结果,如果得到的字符串是空串,则继续读入,如:
char
str[100]={0};
do
{
gets(str);
}
while(
!str[0]
);
相关问答
Q1: c语言的问题:当我调用此函数时,在第一次循环时,系统直接跳过了gets(s1)这个地方而进入循环中,
从贴出来的代码看起来没什么问题。估计是在调用Creat函数之前输入缓冲区没有清空。在你每次调用scanf之后调用一次以下函数来清空输入缓冲区(fflush(stdin)没用):
void ClearInputBuffer()
{
int c;
while((c=getchar())!='\n');
return;
}
Q2: c语言为什么在主函数定义好另一个函数后跳过运行
中间变量溢出。C语言是一种计算机程序设计语言,因为中间变量溢出导致在主函数定义好另一个函数后跳过运行的,是可以作为系统设计语言,编写工作系统应用程序。
Q3: msp430 C语言代码里有个函数不执行,直接跳过,是怎么回事??
如果用返回的温度值作为实参,这个函数就不执行了,如果我随便输入个整数就可以执行,怎么回事??
说明还是参数的问题。再仔细看看参数的传递是否正确。包括类型。
还有传递的时候是否是真实数据,还是数据已经被释放。
自己调试着看看吧。
Q4: C语言中,程序能够通过,但是程序会跳过函数,致使函数调运无效,怎么回事?
void selection_sort(int array[],int n)
{
int i;
int max;
if (n == 1)//------------------
{
return;
}
else if(n == 2)//------------------
{
if (array[0] array[1])
{
max = array[0];
array[0] = array[1];
array[1] = max;
}
return;
}
else
{
if (array[0] array[1])
{
max = array[0];
}
else
{
max = array[1];
}
for(i = 2; i n; i++)
{
if (array[i] max)
{
max = array[i];
}
}
for (i = 0; i n; i++)
{
if (max == array[i])
{
array[i] = array[n];
array[n] = max;
n--;
goto done;
}
}
}
done:
selection_sort(array,n - 1);
}
关于c语言函数调用了跳过和c语言跳过语句的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







