C++ 当我使用cout.tie(NULL)时,程序不会';我不会为我的代码打印任何东西,但如果我打印endl,程序就可以正常工作 #包括 使用名称空间std; 无效扫描线无限期() { //无限期扫描行 字符串输入线; while(getline(cin,input_line)) { cout
C++ 当我使用cout.tie(NULL)时,程序不会';我不会为我的代码打印任何东西,但如果我打印endl,程序就可以正常工作 #包括 使用名称空间std; 无效扫描线无限期() { //无限期扫描行 字符串输入线; while(getline(cin,input_line)) { cout,c++,C++,std::cout将在以下条件下刷新: 绑定到std::cout的输入流尝试读取输入。 你把领带取下来了 iostreams与stdio同步,因此有效地无缓冲。 您已禁用同步 缓冲区已满。 这需要更长的时间 程序正常结束。 那对你来说太晚了 有一个手动刷新(stream.flush()),当流std::flush;stream时调用该刷新。如果仅使用iostream,则可以将手动刷新添加到输出: #include <bits/stdc++.h> using namespac
std::cout
将在以下条件下刷新:
std::cout
的输入流尝试读取输入。你把领带取下来了
您已禁用同步
这需要更长的时间
那对你来说太晚了
stream.flush()
),当流std::flush
;stream时调用该刷新。如果仅使用iostream,则可以将手动刷新添加到输出:
#include <bits/stdc++.h>
using namespace std;
void scan_a_line_indefinitely()
{
// scan line indefinitely
string input_line;
while(getline(cin,input_line))
{
cout << input_line ; **// doesn't print if i use this line**
//cout << input_line << endl; **// if i use this line, it works fine**
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
scan_a_line_indefinitely();
return 0;
}
或
std::cout是的,你应该删除它们,除非你有很好的理由把它们放进去
std::cout.flush();
std::cout << /* the output */<< std::flush;