gpt4 book ai didi

c - 使用 getchar_unlocked() 读取输入

转载 作者:太空狗 更新时间:2023-10-29 17:22:56 28 4
gpt4 key购买 nike

我了解到使用 getchar_unlocked 是读取输入的快速方法。我在很多地方看到了代码,但无法理解。任何人都可以帮助我了解如何使用 getchar_unlocked 阅读吗?提前致谢。

void scanint(int &x)
{
register int c = getchar_unlocked();
x = 0;
for(;(c<48 || c>57);c = getchar_unlocked())
;
for(;c>47 && c<58;c = getchar_unlocked())
{
x = (x<<1) + (x<<3) + c - 48;
}
}

我也看过很多其他的代码。我不是特别明白移号的目的。对此的任何帮助表示赞赏

最佳答案

getch_lock一次读取一个字符。在给定的代码中,我们试图读取一个整数。第一的目的for循环是读取数字字符(如果存在)并忽略它。第二个for循环读取一个必须为数字的字符并执行
n=n*10+c
由于 C 在 Ascii 中,我们减去 48 即 Ascii 代码 '0' .为了使代码更快而不是使用乘法移位。
n*10=n*(8+2)=n*8+n*2=n<<3+n<<1

关于c - 使用 getchar_unlocked() 读取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19630669/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com