我无法解决这个问题。我需要用户输入一个字符串,然后按回车键,然后是另一个字符串。当他/她完成后再次按回车键(最后一个字符串只有 \n 字符,所以我知道何时停止)。
char * buff = malloc (100);
printf("Type in strings, to finish hit enter\n");
do{
scanf (" %[^\n]",buff);
//do some other stuff with the string
} while(*buff);
printf("You have finished typing strings\n");
我想出的这种方法对我没有用,因为 [^\n] 命令告诉函数读取除 \n 之外的所有内容,这意味着 \n 保存在控制台缓冲区中。如果我只是这样做
while(*buff)
{
scanf ("%s",buff);
}
如果我按 Enter 它什么也不做。还有其他方法吗?