1
我试图从fgets()
读取输入,并且该函数不等待输出(来自键盘)。我们被告知使用fgets
,因此scanf
不是这里的选项。 fgets
功能确实由于某种原因在main
功能中使用,但在附加功能中不起作用。fgets不等待标准输入
下面的代码
char name[21]={0x0}; //tried everything; not assigning value and NULL&\0
printf("\nName: ");
//fseek(stdin,0,SEEK_END);
//rewind(stdin);
//fflush(stdin); //these don't help
printf(stdin); //for testing purposes, probably pointless
fgets(nimi, 21, stdin);
程序将跳过fgets()
,而不是等待输入,后来又增加了一些空字符串,我想名称的字符串。但是name
没有得到NULL值,因为有一个错误检查。我知道有相当多的人有这个问题,但我没有找到任何帮助。大多数人告诉使用scanf
或其他功能。记录scanf()
将在这里按预期工作。语法应该是正确的,因为它在main()
中工作。我可能甚至不知道stdin
实际上是如何工作的,所以如果标题很傻,我很抱歉。
这个片段是直接指向一个malloc后(如果else子句)
_for测试目的,可能毫无意义_....否,这是明显错误的.... – LPs
您需要清除标准输入前使用fgets。 –
您是否在此代码之前使用'scanf()'? (可能是一个问题),除了'printf(stdin);'是错误的。 – chux