[英]Output of getchar
int ch;
do
{
ch = getchar();
printf("ch = %d\n",ch);
}while(ch != '\n' && ch != EOF);
在這種情況下,輸入1234的輸出為
ch = 49
ch = 50
ch = 51
ch = 52
ch = 10
但是就這樣給
char chs[100] = {0};
unsigned int u = 0;
int sign = 1,k=0;
if(scanf("%[- 0-9]",&chs[0])== 1)
{
int ch;
do
{
ch = getchar();
printf("ch = %d\n",ch);
}while(ch != '\n' && ch != EOF);
在這種情況下,輸入= 1234的輸出為
ch =10
為什么會在這里發生??? 有人可以解釋一下。為什么輸出與以前不一樣?
scanf在這里到底如何工作?
對scanf
的調用從流中讀取數據。 當您稍后嘗試使用getchar
從流中再次讀取時, scanf
讀取的字符已被消耗,不會再次讀取。
另外,請參閱scanf
的文檔以獲取格式字符串的有效值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.