在c中输入整数然后输入字符串的正确方法

时间:2014-06-02 00:46:11

标签: newline fgets

当我获得整数输入时难以从键盘输入,然后尝试输入字符串。我认为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()输入一些东西,结果输出是空格

2 个答案:

答案 0 :(得分:0)

getchar();之后和scanf之前使用fgets。原因是因为scanf读取了指定的内容(在您的情况下为整数),然后忽略换行符,后者随后被送到fgetsgetchar&#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);