日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
如何更好的進(jìn)行C++代碼編譯

在剛剛剛開(kāi)始學(xué)C++代碼時(shí)遇到一個(gè)問(wèn)題,這個(gè)問(wèn)題導(dǎo)致程序不能夠完全的進(jìn)行運(yùn)行,看完本文后對(duì)您一定會(huì)大有幫助,下文除了學(xué)習(xí)C++代碼的基本性質(zhì)外還對(duì)C++代碼的編程進(jìn)行全面研究。如下代碼:

 
 
 
 
  1. #include    
  2.   int main()   
  3.   ...{   
  4.   char a,b;   
  5.   printf("Please input the first character:");   
  6.   scanf("%c", &a);   
  7.   printf("Please input the second character:");   
  8.   scanf("%c", &b);   
  9.   printf("The two characters are %c, %c", a, b);   
  10.   return 0;   
  11.   } 

程序運(yùn)行結(jié)果如下:而下面這段程序卻可以正常運(yùn)行:

運(yùn)行結(jié)果如下:

 
 
 
 
  1.   #include    
  2.   int main()   
  3.   ...{   
  4.   char a;   
  5.   int b;   
  6.   printf("Please input the first character:");   
  7.   scanf("%c", &a);   
  8.   printf("Please input the second integer:");   
  9.   scanf("%d", &b);   
  10.   printf("The two characters are %c, %d", a, b);   
  11.   return 0;   
  12.   } 

當(dāng)時(shí)對(duì)這個(gè)問(wèn)題很困惑,時(shí)間一長(zhǎng)就慢慢淡忘了。昨天一個(gè)同學(xué)問(wèn)到一個(gè)C++運(yùn)算符重載的問(wèn)題,如下代碼,其中的while循環(huán)起什么作用,好像注釋掉后程序運(yùn)行沒(méi)什么差別:

 
 
 
 
  1. iostream& operator >> (iostream& is, b& s)   
  2.   ...{   
  3.   char temp[b::MAX] = ...{0};   
  4.   is.get();   
  5.   is.get(temp, b::MAX);   
  6.   if(strlen(temp)>0)   
  7.   ...{   
  8.   strncpy(b.str, temp, b::MAX);   
  9.   }   
  10.   while(is && is.get()!=' ')   
  11.   ...{   
  12.   continue;   
  13.   }   
  14.   return is;   
  15.   } 

果然,當(dāng)輸入字符串小于b::MAX時(shí)一切正常,當(dāng)超過(guò)b::MAX時(shí),當(dāng)輸入完***個(gè)字符串回車(chē)后,沒(méi)等輸入第二個(gè)字符串,程序就把b1和b2的內(nèi)容都顯示出來(lái)了,而b2 的內(nèi)容正是輸入的字符串超過(guò)b::MAX長(zhǎng)度的部分,說(shuō)明前面的分析是正確的。

今天又想起這個(gè)問(wèn)題,突然聯(lián)想到以前C++語(yǔ)言的兩個(gè)scanf連用產(chǎn)生的問(wèn)題,靈機(jī)一動(dòng),難道也是輸入緩沖區(qū)沒(méi)有自動(dòng)清空產(chǎn)生的問(wèn)題?當(dāng)連續(xù)用scanf輸入兩個(gè)字符的時(shí)候,輸入***個(gè)字符后回車(chē)。

結(jié)果換行符被當(dāng)作第二個(gè)字符輸入了,scanf可不會(huì)區(qū)分什么換行符還是普通字符,而當(dāng)輸入一個(gè)字符,再輸入一個(gè)整數(shù)時(shí),因?yàn)轭?lèi)型不匹配的原因,scanf會(huì)將換行符忽略而等待輸入正確的整數(shù)后才返回,所以得到了正確的結(jié)果,哈哈,原來(lái)如此!!!

可見(jiàn),C++中的標(biāo)準(zhǔn)輸入流已經(jīng)對(duì)于換行符做了處理,看來(lái)在C++中利用標(biāo)準(zhǔn)輸入處理特殊字符要自己做一些工作了

【編輯推薦】

  1. 簡(jiǎn)介學(xué)習(xí)C++總結(jié)之談
  2. 對(duì)C++庫(kù)函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. C++類(lèi)庫(kù)設(shè)計(jì)的基本構(gòu)思與方法
  4. C++語(yǔ)言真的還有市場(chǎng)價(jià)值?
  5. C++類(lèi)庫(kù)設(shè)計(jì)的基本構(gòu)思與方法

網(wǎng)頁(yè)題目:如何更好的進(jìn)行C++代碼編譯
當(dāng)前網(wǎng)址:http://www.dlmjj.cn/article/djhooch.html