-2
我已經在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
等?
* ...它不適合換行* ...這是什麼意思?出了什麼問題? – lurker
您是否認爲今天有編譯器不會在平臺上將'n * 10'優化爲'(n << 3)+(n << 1)',因爲它在速度上有優勢? – dasblinkenlight
它給了我零的讀取數行突破後 – Virus