为什么 "ios::sync_with_studio(0) and cin.tie(0);" 不适用于 C++ 中的字符串
Why "ios::sync_with_studio(0) and cin.tie(0);" doesn't work with strings in C++
我正在使用 C++ 解决一个问题,我必须将 string 作为输入。所以我没有使用标准的 input/output 方法,而是尝试使用快速 input/output 方法。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ios::sync_with_studio(0);
cin.tie(0);
string str;
cin>>str;
cout<<str;
return 0;
}
显示错误:-
error: 'sync_with_studio' is not a member of 'std::ios {aka std::basic_ios<char>}'
ios::sync_with_studio(0);
^~~
但如果我使用
ios_base::sync_with_stdio(false);
cin.tie(NULL);
它起作用了。
有人能说出为什么上面的代码不起作用以及为什么它起作用
就是这样。你需要确保你写的名字是正确的。您可以随时查看 https://en.cppreference.com/w/.
但在这种情况下,请检查:std::ios_base::sync_with_stdio
还要记住,如果设置为false,C++标准流对象如cout
、clog
、cerr
、wcout
等将不会同步,如果混合使用它们,您可能会看到意外的交错输出。
你犯了一个语法错误,那里
函数
static bool sync_with_stdio( bool sync = true );
设置是否在每次 input/output 操作后将标准 C++ 流同步到标准 C 流。
默认情况下,所有八个标准 C++ 流都与其各自的 C 流同步。因为,同步的 C++ 流保证是线程安全的(从多个线程输出的单个字符可能会交错,但不会发生数据竞争)。
但是在进行竞争性编程时,人们通常关心更快的代码执行速度,而不是质量和安全性。因此,当关闭同步时,允许 C++ 标准流独立缓冲它们的 I/O 以允许更快的执行。
ios::sync_with_stdio 不接受您尝试过的 int
错误:ios::sync_with_stdio(0)
对:ios::sync_with_stdio() or ios::sync_with_stdio(false)
默认为真。
请看函数定义是xiosbase.
我正在使用 C++ 解决一个问题,我必须将 string 作为输入。所以我没有使用标准的 input/output 方法,而是尝试使用快速 input/output 方法。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ios::sync_with_studio(0);
cin.tie(0);
string str;
cin>>str;
cout<<str;
return 0;
}
显示错误:-
error: 'sync_with_studio' is not a member of 'std::ios {aka std::basic_ios<char>}'
ios::sync_with_studio(0);
^~~
但如果我使用
ios_base::sync_with_stdio(false);
cin.tie(NULL);
它起作用了。 有人能说出为什么上面的代码不起作用以及为什么它起作用
就是这样。你需要确保你写的名字是正确的。您可以随时查看 https://en.cppreference.com/w/.
但在这种情况下,请检查:std::ios_base::sync_with_stdio
还要记住,如果设置为false,C++标准流对象如cout
、clog
、cerr
、wcout
等将不会同步,如果混合使用它们,您可能会看到意外的交错输出。
你犯了一个语法错误,那里 函数
static bool sync_with_stdio( bool sync = true );
设置是否在每次 input/output 操作后将标准 C++ 流同步到标准 C 流。
默认情况下,所有八个标准 C++ 流都与其各自的 C 流同步。因为,同步的 C++ 流保证是线程安全的(从多个线程输出的单个字符可能会交错,但不会发生数据竞争)。
但是在进行竞争性编程时,人们通常关心更快的代码执行速度,而不是质量和安全性。因此,当关闭同步时,允许 C++ 标准流独立缓冲它们的 I/O 以允许更快的执行。
ios::sync_with_stdio 不接受您尝试过的 int
错误:ios::sync_with_stdio(0)
对:ios::sync_with_stdio() or ios::sync_with_stdio(false)
默认为真。
请看函数定义是xiosbase.