在这种情况下,用户输入是使用fgets从stdin获取的。通常在用户点击输入时结束while循环我会在fgets值和\ n之间使用strcmp,但我们不允许在此特定赋值中使用#include <string.h>
。使用C99。
答案 0 :(得分:0)
你不能,因为fgets()
函数在找到\n
时返回
我假设您的意思是当用户输入单个\n
时没有其他内容。使用fgetc()
代替它可能会更好,这将返回\n
。
这意味着您需要自己缓冲inout,如下所示:
char inputBuffer[120] = "";
char ch;
char chCount = 0;
while (1) {
ch = fgetc(stdin);
if (ch == '\n') {
/* Empty buffer? */
if (inputBuffer[0] == '\0')
/* Oui! */
break;
/* Buffer isn't empty - do something with it... */
fprintf(stdout, "Input buffer: %s\n", inputBuffer);
/* Clear the buffer for the next line of input and reset the
* counter. */
inputBuffer[0] = '\0';
chCount = 0;
}
else {
if (chCount < 119) {
/* Add the byte to the buffer. */
inputBuffer[chCount++] = ch;
inputBuffer[chCount] = '\0';
}
}
}
如果输入单个\n
,上面的循环将输出任何输入字符串或中断。