簡體   English   中英

getchar的輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM