最近开始用
ios::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
和自己的快读
template <typename T>
inline void read(T &t)
{
t = 0;
T flag = 1;
char c = getchar();
while ((c - '0') * ('9' - c) < 0)
{
if (c == '-')
flag = -1;
c = getchar();
}
while ((c - '0') * ('9' - c) >= 0)
{
t *= 10;
t += c - '0';
c = getchar();
}
t *= flag;
}
有时候确实会出现read cin getchar等的混合,但是大部分时候并不会出现什么问题。
最近做几道比较基础的题目(比如P1162 填涂颜色)的时候,却出现使用c风格的getchar和printf时,答案死活报错(格式错误),在本机上检查是对的(仅从终端输出观察,没有深究输出的文本)。当我全部改成cin cout的cpp风格后,却能够通过了。
我了解的一些基础,比如cin cout是多线程安全之类,但是提交的都应该是串行程序,而且都是简单的输入输出不应该会有这种问题呀。也许我了解不够多,有没有大神可以解释下为啥会出现c风格的输出在判题和cpp风格完全不一样的原因,因为这个问题我浪费了两个下午了,555555