这些线条的意义何在?

时间:2016-12-15 06:42:56

标签: io inputstream c++14 user-input

我在code代码中找到了代码。我不是那么专家请指导我使用这些代码行 问题只是读取最大长度为1000的整数输入字符串

ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#ifndef ONLINE_JUDGE  
freopen("test.in", "r", stdin); 
#endif

1 个答案:

答案 0 :(得分:0)

第一行基本上是为了加速读取文件,因为在竞争性编码中通常不需要这些功能(带有一点点盐):

  1. 可以在Using scanf() in C++ programs is faster than using cin?
  2. 中找到ios_base::sync_with_stdio的使用情况
  3. 可以在Why do we need to tie std::cin and std::cout?
  4. 中找到cin.tie(0), cout.tie(0)的使用情况

    至于使用ONLINE_JUDGE,已在代码blog中对其进行了解释。基本上,当代码在线运行代码时,会添加ONLINE_JUDGE标志。在您的情况下,如果您在家中运行代码,则可以忽略ONLINE_JUDGE标志,它将读取您的测试文件test.in。在Codeforces中运行时,相同的代码将设置为ONLINE_JUDGE,并将忽略freopen("test.in", "r", stdin);行并运行自己的测试用例。