相关疑难解决方法(0)

508
推荐指数
8
解决办法
5万
查看次数

fgets() 在 C 中无法按预期工作

给出以下代码:

#include <stdio.h>
int main()
{
 int testcase;
 char arr[30];
 int f,F,m;
 scanf("%d",&testcase);
 while(testcase--)
 {
  printf("Enter the string\n"); 
  fgets(arr,20,stdin);
  printf("Enter a character\n");
  F=getchar();
  while((f=getchar())!=EOF && f!='\n')
    ;
  putchar(F);
  printf("\n");
  printf("Enter a number\n");
  scanf("%d",&m);
 }
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

我希望用户输入一个字符串、一个字符和一个数字,直到测试用例变为零。

我的疑虑/疑问:

1.用户无法输入字符串。看来fgets不行。为什么?

2.如果我使用scanf而不是fgets,则getchar无法正常工作,即我在其中输入的任何字符都putchar作为新行。为什么?

谢谢您的帮助。

c

3
推荐指数
1
解决办法
4893
查看次数

为什么Scanf在拍摄角色时工作很奇怪

程序说明: - 我编写了一个程序,该程序从用户输入无限的字符输入.时间并打印输入的输入.这是程序

#include<stdio.h>
int main()
{
int i=1;
char a;
  while (i!=0)
  {

   printf("Enter %d th value\n",i);
   scanf("%c",&a);
   printf("Entered input is %c\n",a);
    i++;
  }

}
Run Code Online (Sandbox Code Playgroud)

上述方案的产出: -

Enter 1 th value
q
Entered input is q
Enter 2 th value
Entered input is 

Enter 3 th value
r
Entered input is r
Enter 4 th value
Entered input is 

Enter 5 th value
g
Entered input is g
Enter 6 th value
Entered input is 

Enter 7 th value …
Run Code Online (Sandbox Code Playgroud)

c whitespace while-loop

2
推荐指数
1
解决办法
302
查看次数