请问C语言如何在不强制刷新缓冲区的情况下,判断输入的字符串是否越界,并且重新输入
buffer数组大小你是知道的吧,在接收到一个字符后,判断不是换行符,则加入buffer数组,并将字符计数加1。然后判断字符计数是否等于buffer数组大小,是则输入结束,否则继续接收输入。你的代码大致可以,但是循环内的c=getchar()位置不对,应该放到循环最后。31行只需要判断长度是否为buffer数组长度,因为c不是换行符是while的条件
#define maxsize 1000
int main()
{
char buffer[maxsize+1] = {0};
int len = 0;
char c = getchar();
while(c != '\n')
{
buffer[len++] = c;
if(len == maxsize)
break;
c = getchar();
}
printf("%s",buffer);
return 0;
}
当字符串最后一个字符=='\0'时,就说明到最后一个字符了,就必须停止了,再过就越界了
可以参考这篇文章的思路,我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《C语言中处理一行输入未知个数的整数的问题》, 一起来围观吧 https://blog.csdn.net/zhouzying/article/details/105076417?utm_source=app&app_version=5.2.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!