仅在我退出应用程序后,使用Cout.write()函数在控制台上打印字符串
Prints string on console with cout.write() function only after I Quit the application
使用cin.getline()插入字符串,并希望在使用cout.write()的控制台。退出应用程序后打印输入的字符串
#include<iostream.h>
#include<conio.h>
int main() {
char str[20];
cout<<"Enter a string:";
cin.getline(str,20);
cout<<"Entered string:";
cout.write(str,20);
cout.flush();
getch();
return 0;
}
流向流的输出通常为缓冲。除非缓冲区被冲洗液(当您完全填充缓冲区或明确冲洗时发生这种情况),则实际上不会写出输出。
当流对象关闭时,流缓冲区也被冲洗,当std::cout
作为程序终止的一部分破坏时,这会发生。这就是为什么您会在程序退出时看到输出的原因。
因此,解决方案很简单:明确地冲洗缓冲区(例如std::cout.flush();
),每次写入。
std::ostream
通常会缓冲 std::cout
等实现。这意味着std::ostream
实现将收集带有缓冲区write()
的电话传递的内容,并且只有在缓冲区耗尽时,实际内容才会发送到物理设备(终端或在存储中显示的文件)。
要触发将缓冲区内容写入终端或文件的流,您明确必须调用 std::ostream::flush()
(请注意,std::endl
I/O操纵器都隐含地执行此操作)。
相关文章:
- C++(控制台)构造函数和派生类
- 如何在关闭Qt控制台应用程序之前运行我的析构函数?
- 如何结束图形GUI和执行控制台函数(QT)
- 将函数从控制台应用程序移动到共享库项目似乎会带来不相关的编译错误
- winrt 命名空间是否具有控制台函数?
- 如何在多线程 MEX 函数中打印到控制台?
- 在单元测试(Nunit或MSTest)中从C#中调用的C 函数的原因是从控制台应用程序中运行的同一代码的不同结果
- 我的函数返回的是打印到控制台,它只会在我调用它时每隔一段时间C++
- VBA运行声明的函数但C++控制台应用程序运行正常时堆损坏
- 如何在C++中调用具有参数和用户控制台输入的函数
- 将打印到控制台的函数输出重定向到字符串
- 如何编译使用 PlaySound 函数的 c++ 控制台应用程序
- C/C++中的ClearConsole()-用于清除控制台的函数
- c++控制台程序中strcpy函数的异常.strcpy()中的
- 如何使用C++应用程序和系统函数来执行java控制台应用程序
- 如何从用户(即控制台)提供数组元素,以及如何将数组元素作为参数传递给函数
- 有人能解释一下为什么只有一个函数打印到控制台吗?
- 在控制台执行函数关闭c++
- 如何从Windows Service主函数启动c++本地应用程序(应用程序与控制台交互)?
- 错误LNK2019:函数___tmainCRTStartup中引用了未解析的外部符号_main,但这次不是 Windows/控制台问题!