如何解决等价于cin.tie0在Java中吗?
是否只有在程序完成所有输入后才可以打印输出?换句话说,Java中是否有与cin.tie(0)
等效的东西?
在C ++中,当我们包含cin.tie(0)
时,我们解开std::cout
和std::cin
。通过这样做,我们确保在输入由给出后,输出不会立即刷新到控制台上用户,而是在用户完成所有输入后刷新输出。
考虑一个程序有3个测试用例作为输入的情况。我们的程序将输出Hello World!
。
输入
Test Case 1
Test Case 2
Test Case 3
不使用cin.tie(0)
:
程序(c ++)
int main(){
int t;//holds the info of number of test cases
cin>>t;
for(int i=0;i<t;i++){
string s;
cin >>s;
cout<<"Hello World";
}
return 0;
}
控制台:
Test Case 1
Hello World!
Test Case 2
Hello World!
Test Case 3
Hello World!
使用cin.tie(0):
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int t;//holds the info of number of test cases
cin>>t;
for(int i=0;i<t;i++){
string s;
cin >>s;
cout<<"Hello World";
}
return 0;
}
Test Case 1
Test Case 2
Test Case 3
Hello World!
Hello World!
Hello World!
有什么方法可以在Java中复制cin.tie(0)
?
解决方法
某些C库(尤其是including glibc)在从某些输入流中读取时会刷新标准输出。您必须使用特定于平台的API调用来更改该行为(可能是通过完全缓冲输入流);我不知道该功能有任何标准/预制包装。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。