我正在尝试记录用户的响应(使用getchar()
)。我在'\n'
插入缓冲区时遇到问题。如果我使用fgets(char* buf, .. , ..)
,'\n'
再次进入buf
,您必须'\n'
在测试字符串的末尾包含。使用 string.h 函数时(如strcmp()
)。是否有任何干净的方法可以为此目的编写代码。
#include<stdio.h>
#include<string.h>
int main()
{
char buf[100];
fgets(buf, 3, stdin);
puts(buf);
int i = strcmp("p\n", buf);
printf("%d", i);
//if (!strcmp("CLock to random\n", buf))
//{
//puts("sucess");
//}
char c;
c = getchar();
putchar(c);
return 0;
}
现在我想记录响应(单个字符'p')。如果我使用 getchar() 代替 fgets(),程序会跳过第二个 getchar()(c = '\n')。如果我使用当前代码,我每次都必须在 strcmp() 中包含 \n 。