1. 程式人生 > >在進行多次scanf時,printf輸出錯誤

在進行多次scanf時,printf輸出錯誤

輸入 style 錯誤 num getchar pan -- 會有 時有

隨便一處代碼,經過改正後,輸出正確的

‘‘‘

#include <stdio.h>

int main()
{
int T;
scanf("%d",&T);
getchar();
while(T--)
{
char p;int y;
scanf("%c%d",&p,&y);
getchar();
int num;
if(p>=‘a‘&&p<=‘z‘)
num=-(p-‘a‘+1)+y;
if(p>=‘A‘&&p<=‘Z‘)

num=(p-‘A‘+1)+y;
printf("%d\n",num);
}
}

‘‘‘

出現printf輸出錯誤的原因,因為我們的輸入輸出是在緩沖區進行讀寫的,scanf完後會有換行符,讀入緩沖區,然後如果這時有scanf就會把換行符讀入進去,造成還沒有輸入就輸出了。解決方法是在scanf後面,加上getchar()將換行符從緩沖區讀出來

在進行多次scanf時,printf輸出錯誤