此代碼片段來自CodeChef中Problem問題的成功提交,爲了使其更快速,編碼器使用getchar_unlocked
來讀取整數。但我沒有得到它如何在下面的代碼片段中退出循環?請任何人都可以幫助我?完整的代碼可以找到here。如何使用getchar_unlocked(),我沒有得到以下代碼中的流?
#include <stdio.h>
#define g getchar_unlocked
int read()
{
int n=0;
char c=g();
while(c<'0' || c>'9')
{
c=g();
}
while(c>='0' && c<='9')
{
n = (n<<3) +(n<<1) +c - '0';
c=g(); // putting it here is giving a unusual behaviour!!!!! like not taking the input and coming out of loop ???
}
return n;
}
所以'g()'的定義在哪裏? – YakovL
對不起,我沒有粘貼完整的鱈魚,但是如果你打開這個鏈接https://www.codechef。com/viewsolution/10306107,你會得到完整的代碼 – saiflash
什麼是不尋常的行爲? – immibis