请问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;
}