新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > getchar()使用時遇到的數據類型錯誤

        getchar()使用時遇到的數據類型錯誤

        作者: 時間:2016-11-28 來源:網絡 收藏
        1.
        在字母讀取操作中通常會使用到這條語句
        while ((c = getchar() ) != EOF)
        在做練習時,沒有注意括號的重要性,寫成
        while (c = getchar() != EOF)
        結果使得putchar(c)是亂碼。
        分析:
        返回的bool值雖然也是1沒錯,但是c取得的值卻是亂碼。鑒于語句里面只有兩個判斷符號
        猜測是符號優先級導致了亂碼?
        推測c被賦予的值是int 1。但是作為char輸出時,是亂碼。不應該當會當作ACSII碼來處理嗎?

        還有就是沒有理解一次性調用的基本原理,就是設定一個進入條件,執行時改變他:
        if ((c == ) || (c == t) )
        if (flag == 0)
        {
        ...
        flag = 1;
        }
        2.
        char s[] = {123,456};//編譯錯誤!
        char s[] = {1,4}; //通過編譯,輸出s內容是亂碼!!
        char 數組不能那樣存?
        但是使用 c = getchar(); 之后,即是c存的是數字,但是也是char類型。
        可以有 s [i] = c; ,同時輸出也是正確值(鍵盤輸入123,s元素也是123);

        執行時產生了Segmentation fault (core dumped)錯誤,由于數組操作為主,初定是數組越界導致。
        沒錯就是數組越界造成的!對于數組s[10],實際范圍是s[0]~s[9]!千萬別往s[10]里面存東西,我就存了#!#!#!#!還好只是存了結束符 主站蜘蛛池模板: 聂荣县| 丹阳市| 青神县| 镇沅| 洪洞县| 毕节市| 洛阳市| 连山| 微博| 南京市| 龙游县| 岢岚县| 桦川县| 沾化县| 祁门县| 缙云县| 石嘴山市| 白河县| 百色市| 石城县| 磐石市| 石河子市| 雅安市| 鹿邑县| 行唐县| 沾化县| 遵化市| 宿迁市| 余庆县| 建德市| 娄底市| 高台县| 阿克| 灵川县| 枝江市| 改则县| 高雄市| 漾濞| 邮箱| 绥德县| 华坪县|