快速扫描标准以获取整数不起作用
Fast Scan stdin to get integer not working
我在 c++ 中制作了这个函数,以比cin
更快地读取stdin
输入,以便在竞争性编程评委中使用。
inline int VReadNumber() {
int n = 0;
int ch = getchar_unlocked();
while(ch >= '0' && ch <= '9') {
n = (n<<3) + (n<<1) + ch - '0';
ch = getchar_unlocked();
}
return n; }
如果所有输入都没有换行符,它会完美运行,例如
2
40 40
80
5
1 2 3 4 5
10
但是它在输入中的换行符方面效果不佳,例如
2
40 40
80
5
1 2 3 4 5
10
并且只读取值直到换行符,这里直到80。
如何使用换行符使其工作?此外,一个使用示例将不胜感激。
是否值得使用它的所有"细微差别"而不是scanf
之类的?
这是因为空行表示两个连续的非数字(n
(字符。您的代码只能处理一个。添加另一个循环来使用空格,最好是在函数的开头,并将最后一个非数字字符保留在缓冲区中。
相关文章:
- 快速扫描标准以获取整数不起作用
- 只要用户输入,如何从用户那里获取整数?
- 如何从另一个类动态获取整数?
- 控制台在获取整数后暂停
- 在某些范围更新后获取整数数组的最终状态的有效算法是什么?
- 如何从从 MPU 陀螺仪发送的字节数组中获取整数
- 如何在C 中获取整数数组的元素
- 如何打破循环以在C 中获取整数数组
- 火炬C++:使用 *.data() 获取整数张量的值<int>
- 从.txt文件中获取整数
- 从C 中的系统函数中获取整数(大于255)
- 从集合中随机给定整数 0、1 和 2 时获取整数 0、1 和 2 的快速方法
- 使用boost::random库获取整数随机值而不是实数
- 从文件 C++ 获取整数
- C++从迭代器中获取整数形式的索引值
- 如何使用zmq/zeromq从传递给python的字符串表示(字节数组)中获取整数/浮点数
- 从xml中获取整数和浮点值
- 获取整数bitset中前导1位置的最快方法
- c++中无法从stringstream中获取整数
- 如何在visual studio 2013中使用c++从文本文件中获取整数