<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > getchar()使用時(shí)遇到的數(shù)據(jù)類型錯(cuò)誤

          getchar()使用時(shí)遇到的數(shù)據(jù)類型錯(cuò)誤

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

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

          執(zhí)行時(shí)產(chǎn)生了Segmentation fault (core dumped)錯(cuò)誤,由于數(shù)組操作為主,初定是數(shù)組越界導(dǎo)致。
          沒錯(cuò)就是數(shù)組越界造成的!對(duì)于數(shù)組s[10],實(shí)際范圍是s[0]~s[9]!千萬別往s[10]里面存東西,我就存了#!#!#!#!還好只是存了結(jié)束符看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();