当前位置: 首页 > 面试题库 >

fflush()在Linux中不起作用

曹浩波
2023-03-14
问题内容

我在Linux GCC中使用了fflush(),但是没有用。该功能还有其他选择吗?这是我的代码:

#include<stdio.h>
void main()
{
  char ch='y';
  while(ch=='y')
  {
    int a;
    printf("Enter some value:");
    scanf("%d",&a);
    fflush(stdin);
    printf("Do you want to continue?");
    scanf("%c",&ch)
  }

我得到的输出是:

Enter some value: 10

然后程序结束。就这样。我可以在Linux中做什么?有替代功能吗?


问题答案:

不要使用fflush,而是使用以下函数:

#include <stdio.h>
void clean_stdin(void)
{
    int c;
    do {
        c = getchar();
    } while (c != '\n' && c != EOF);
}

fflush(stdin)取决于实现,但是此功能始终有效。在C中,使用是不当做法fflush(stdin)



 类似资料:
  • 问题内容: 任何人都知道为什么该命令在Windows中可以正常工作,但是在Linux中,我得到了ClassNotFoundException game.ui.Main 我的文件夹结构如下:lib /-Jars游戏/-类文件 这是最新的Java 6。 问题答案: 类路径语法与操作系统有关。来自维基百科: 命令行Classpath语法与文件系统密切相关,取决于操作系统。例如: 在所有类似Unix的操作

  • fflush(更新缓冲区) 相关函数 write,fopen,fclose,setbuf 表头文件 #include<stdio.h> 定义函数 int fflush(FILE* stream); 函数说明 fflush()会强迫将缓冲区内的数据写回参数stream指定的文件中。 如果参数stream为NULL,fflush()会将所有打开的文件数据更新。 返回值 成功返回0,失败返回EOF,错误

  • fflush 更新缓冲区 相关函数 write,fopen,fclose,setbuf 表头文件 #include<stdio.h> 定义函数 int fflush(FILE *stream); 函数说明 fflush()会强迫将缓冲区内的数据写回参数stream指定的文件中。如果参数stream为NULL,fflush()会将所有打开的文件数据更新。 返回值 成功返回0,失败返回EOF,错误

  • 我有一些 在量角器中,我们搜索并找到元素,检查文本是否符合我们的期望,然后对该元素调用。测试在Chrome中运行良好,但在IE中就好像没有点击发生一样。破坏了测试。 IE 11是否支持点击

  • 问题内容: 我注意到less.js在firefox中工作,但在Chrome中不工作,或者是因为我出错了吗? 即使我尝试在Chrome中仍然无法使用,我在某个地方犯了错误吗? 问题答案: 通过您提供的链接: 如果您使用的是Chrome,Less.js浏览器脚本当前将无法使用,并且由于已知的Chrome问题,网页的路径以“file:///”开头。

  • 问题内容: 不仅如此,其他代码也有相同的问题。只是不能使用ImageView。 环境:macOS,IntelliJ 造成原因:java.lang.IllegalArgumentException:无效的URL:无效的URL或找不到资源 问题答案: 该图像构造函数接受一个url作为参数。如果您未在其中添加协议,则它将假定该项目来自类路径。显然,不会出现在您的类路径中。 要从文件而不是类路径中读取,请