当我获得整数输入时难以从键盘输入,然后尝试输入字符串。我认为fgets func正在从之前的输入中获取换行符,但不是%100肯定会发生什么。想法?谢谢!
CODE:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int send;
char message[100];
printf("\nEnter your ID#: ");
scanf("%d", &send);
printf("Get string\n");
fgets(message, sizeof message, stdin);
printf("The string: %s\n", message);
}
结果输出
Enter your ID#: 23
Get words
The words:
fgets()输入一些东西,结果输出是空格
答案 0 :(得分:0)
在getchar();
之后和scanf
之前使用fgets
。原因是因为scanf
读取了指定的内容(在您的情况下为整数),然后忽略换行符,后者随后被送到fgets
。 getchar
&#34;吃掉&#34;这个换行符。有关详细说明,请参阅此链接
http://www.go4expert.com/articles/solution-using-scanf-fgets-c-t27148/
答案 1 :(得分:0)
以下行有错误:
fgets(message, sizeof message, stdin);
应该是
fgets(message, sizeof(message), stdin);