标签: flush

不能 cin.ignore 直到 EOF 吗?

我想忽略这个答案中cin要刷新的所有字符cin如何一次摆脱一个单词而不是一次一行的错误输入?

但我发现如果我写下该程序似乎会挂起等待输入:

cin.ignore(std::numeric_limits<std::streamsize>::max());
Run Code Online (Sandbox Code Playgroud)

cin如果我使用分隔符,它会正确刷新'\n'

cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么我不能忽略直到 EOF?为什么我必须提供分隔符?

c++ flush cin delimiter

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

如何在 Grails GORM 中强制刷新

我有一项将任务分配给操作员的服务。在方法内部,我在循环内及时分配许多任务。我想刷新任务、操作员和 DistributionLog。如果我只需要保存一个域名,我想我可以做类似的事情

Operator.withTransaction{ //...some code }
Run Code Online (Sandbox Code Playgroud)

但我至少有 3 个域需要保存,更糟糕的是,其中两个域相互依赖。操作员有一个任务列表。

我迫不及待地等待所有分配完成,然后操作员才能获得他的任务,所以我必须强制它刷新。更难的是,这一切都在 multitenantService.doWithTenant() (多租户插件)中

grails transactions flush

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

指定end关键字后,为什么python3的print语句不刷新输出?

from sys import argv, stdout as cout
from time import sleep as sl
print("Rewinding.......",end = '') # If end is given output isn't flushed. But why?
cout.flush()
for i in range(0,20):
    sl(0.2)
    print(".",end='',flush = True) #No output is printed if flush wasn't specified as true.

print("Done") #Output is by default flushed here
Run Code Online (Sandbox Code Playgroud)

当我指定结束并进入睡眠状态时,我注意到直到下一次打印时才刷新输出,直到默认情况下才刷新它。

为什么会这样?我不得不手动刷新输出。

python stdout flush python-3.x

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

为什么带有 \n 的 printf() 在 Windows 上仍然无法刷新?

我的 Windows 程序(使用 MSYS2 MINGW64 编译)stdout以大块输出其数据。使用aprintf()的调用\n无法正确刷新输出。

作为这个问题的变体,在什么条件下printf()不冲洗?


例如,以下代码在 MSYS2 MINGW64 上的块中输出:

#include <stdio.h>

int main() {
        while(1) {
                printf("test\n");
                Sleep(1);
        }
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

c windows flush mingw-w64 msys2

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

Python:默认情况下是否可以使“打印”刷新?

printPython 3 中的函数可能会收到一个布尔值来判断是否立即刷新:

print("foobar", flush=True)
Run Code Online (Sandbox Code Playgroud)

我希望print默认情况下为它打印的所有内容都设置刷新功能,这可能吗?变通方法、临时设置,等等。

python printing default stdout flush

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

使用控制台记录器的控制台应用程序不会写入最终消息。轻松重现

Windows 上使用 LoggerFactory 的 .net 6 控制台应用程序 - 最终消息不会出现在控制台上。loggerFactory.Dispose() 没有帮助。Ilogger 没有 Dispose() 方法。

这是一个复制品。大约会出现 20 到 70 条循环消息。之后就什么都没有了。

using var loggerFactory = LoggerFactory.Create(builder =>
{
    builder
        .AddFilter("Microsoft", LogLevel.Warning)
        .AddFilter("System", LogLevel.Warning)
        .AddFilter("MyTestApp.Program", LogLevel.Debug)
        .AddConsole();
});
ILogger logger = loggerFactory.CreateLogger<Program>();
try
{ 
    logger.LogInformation("Starting");
    for (var i=0; i < 100; i++)
    {
        logger.LogInformation($"This is a nice long message for {i}.");
    }
    throw new Exception("boom");
}
catch (Exception e)
{
    logger.LogInformation(e.ToString());
}
finally
{
    loggerFactory.Dispose();
}

Run Code Online (Sandbox Code Playgroud)

logging flush .net-core

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

如何在PHP中设置计时器?

例如,我的目标是测试这里给出的代码:

向客户报告进度的PHP脚本

<?php

waitalittle();
echo 'Task one finished';
flush();

waitalittle();
echo 'Task two finished';
flush();

?>
Run Code Online (Sandbox Code Playgroud)

我的目标是创建waitalittle()函数,该函数应该花费5秒钟来执行.

我的最终目标是能够在浏览器中查看PHP脚本各个部分的进度而无需刷新.

我现在遇到的问题是,如果我使用任何旧函数而不是"waitalittle",所有回显语句都会同时出现.我想测试上面提到的链接/答案,看看语句是否在处理时在浏览器上回显.

php timer flush

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

如何从appcfg.py中清除memcache?

如何刷新(删除所有条目)memcache使用appcfg.py

通常在代码更新期间,我想刷新内存缓存以防止旧代码和新代码之间不兼容.可以在命令行上完成,而不是去开发人员控制台并手动点击"Flush Cache"按钮吗?

google-app-engine memcached flush appcfg

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

如何在C++中自动刷新日志消息并解锁互斥锁?

我写了这个记录器.它工作正常,但有一些我无法做到的事情.

uLOG(warning) << "Test log message " << 123 << uLOGE;
Run Code Online (Sandbox Code Playgroud)

uLOG锁定C++ 11互斥锁并开始在文件流上写入.
uLOGE刷新流并解锁互斥锁.

我想用这种语法得到相同的结果:

uLOG(warning) << "Test log message " << 123;
Run Code Online (Sandbox Code Playgroud)

所以我希望在行尾自动调用flush和unlock.

哪种方法可以做到?

  • 我尝试设置ios::unitbuf标志,但这会强制每个<<操作员齐平,不适合SSD佩戴.它并没有解锁互斥锁.
  • 我尝试在uLOG中定义一个临时对象,其析构函数将刷新并解锁,但这会强制将日志行放在自己的代码块中: { uLOG(warning) << 123; }

参考

c++ logging mutex flush c++11

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

分叉过程每次打印的方式不同

我有一段代码打印出一次分叉的PID,只是一个基本的用户输入的东西,但每次我运行脚本时,有时它按预期运行,它都在一个命令中打印出来,然后下一次打印子进程它是PID,它在下一行上执行,并使终端处于一个状态,您需要按Enter键才能继续.我已经研究过这个网站,关于人们在什么都不知道的情况下,我已经在任何地方添加,但我仍然无法让它工作.

我的代码:

#include <unistd.h>
#include <stdio.h>
#include "sys/types.h"
int main(){
int pid;
int userInput;

    printf("Please enter a number: ");
    userInput = getchar();

    printf("\nYou entered: ");
    putchar(userInput);
    printf ("\n");
    fflush(0);

    pid = fork();
    if (0 == pid)
    {
        printf ("I am the child process, my PID is %d \n", getpid());
        fflush(0);
    }
    else
    {
        printf ("I am the parent process, my PID is %d \n", getpid());
        fflush(0);
    }
return 0;
}
Run Code Online (Sandbox Code Playgroud)

这就是我运行几次时会发生的事情:

有人可以指出我出错的地方以及如何纠正它?

谢谢!

c++ fork flush

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