第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在同一程序中混合cout和wcout

在同一程序中混合cout和wcout

C++
翻閱古今 2019-12-04 10:47:08
我正在閱讀“ C ++食譜”,其中包含以下代碼段:// cout  << s  << std::endl;  // You shouldn't be able towcout << ws << std::endl;     // run these at the same time如果您有興趣查看實(shí)際示例,請(qǐng)?jiān)L問以下指向Google圖書頁面的鏈接。另外,我發(fā)現(xiàn)了這個(gè)SO問題,似乎表明將wcout和cout混合是可以的。有人可以向我解釋此評(píng)論在說什么嗎?編輯從C ++標(biāo)準(zhǔn)[27.4.1]:相應(yīng)的寬字符流和窄字符流的混合操作遵循與在FILEs上混合此類操作相同的語義,如ISO C標(biāo)準(zhǔn)的修訂1所指定。根據(jù)C標(biāo)準(zhǔn)[7.19.2]:每個(gè)流都有一個(gè)方向。在將流與外部文件關(guān)聯(lián)之后,但是在對(duì)該文件執(zhí)行任何操作之前,該流沒有方向。一旦將寬字符輸入/輸出功能應(yīng)用于沒有方向的流,該流將成為面向?qū)挿较虻牧?。類似地,一旦將字?jié)輸入/輸出功能應(yīng)用于沒有方向的流,該流將成為面向字節(jié)的流。否則,只有對(duì)freopen函數(shù)或fwide函數(shù)的調(diào)用才能更改流的方向。(成功調(diào)用freopen會(huì)刪除所有方向。)字節(jié)輸入/輸出功能不得應(yīng)用于寬方向的流,而寬字符輸入/輸出功能不應(yīng)適用于面向字節(jié)的流。因此,該標(biāo)準(zhǔn)似乎表明您不應(yīng)該將它們混合使用。但是,我從這篇文章中找到了這句話:對(duì)于Visual C ++ 10.0,fwide函數(shù)記錄為未實(shí)現(xiàn)。從實(shí)際的角度來看,至少在輸出整行的水平上,顯然可以將cout和wcout混合使用。因此,令人高興的是,Visual C ++顯然只是無視該標(biāo)準(zhǔn)的要求,而沒有維護(hù)不切實(shí)際的顯式C FILE流定向。而且,關(guān)于gcc,我從這里找到了這句話:這是一項(xiàng)(新)功能,而不是錯(cuò)誤,請(qǐng)參閱libstdc ++ / 11705,以及有關(guān)C標(biāo)準(zhǔn)(C99,7.19.2)中流方向的一般信息。簡(jiǎn)而言之,您不能將面向字節(jié)的I / O和面向?qū)挿较虻腎 / O混合使用?,F(xiàn)在,由于 libstdc ++ / 11705中指出的錯(cuò)誤,您可以通過調(diào)用std :: ios :: sync_with_stdio(false);獲得接近預(yù)期的效果。在程序開始時(shí)。
查看完整描述

3 回答

?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊

當(dāng)coutwcout稱為首次,為定向stdout成為集。在的情況下cout,stdout變?yōu)槊嫦蜃止?jié)的流,在的情況下wcout,stdout變?yōu)槊嫦驅(qū)捵止?jié)的流。根據(jù)C ++標(biāo)準(zhǔn)[27.4.1]和C標(biāo)準(zhǔn)[7.19.2],一旦設(shè)置了流的方向,就不應(yīng)調(diào)用與該流的方向不兼容的函數(shù)。


查看完整回答
反對(duì) 回復(fù) 2019-12-04
?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

從技術(shù)上講,您絕對(duì)可以同時(shí)使用窄流和寬流。但是,除非您安排它們兩個(gè)對(duì)字符進(jìn)行相同的編碼,否則結(jié)果很可能會(huì)混亂。不幸的是,這附帶了一個(gè)警告,即您不能控制標(biāo)準(zhǔn)流對(duì)象使用的編碼,至少不能移植。即使編碼是相同的,也需要確保部分字符被完全寫入,即,當(dāng)切換到其他寬度時(shí),至少需要刷新緩沖區(qū)。


查看完整回答
反對(duì) 回復(fù) 2019-12-04
?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

顯然,每個(gè)對(duì)象都在“目標(biāo)”流上添加了方向STDOUT,并且不允許在已添加方向[C++11: 27.4.1]和的流上混合操作[C99: 7.19.2]。


查看完整回答
反對(duì) 回復(fù) 2019-12-04
  • 3 回答
  • 0 關(guān)注
  • 953 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)