3 回答

TA貢獻(xiàn)2016條經(jīng)驗 獲得超9個贊
setw()是設(shè)置域?qū)挼暮瘮?shù),默認(rèn)是前面加空格右對齊。
你的程序中的setw()丟了w,其他對著呢!細(xì)心檢查就沒有問題了!程序運(yùn)行后名字左對齊占用8個字節(jié)不足在右邊補(bǔ)空格;數(shù)據(jù)右對齊,占用10個字節(jié)不足左補(bǔ)空格
想要看到底是如何填充的只要把輸出語句改一下就可以了:cout<<setiosflags(ios::left)<<setfill('.')<<setw(8)<<names[i]<<resetiosflags(ios::left)<<setfill('/')<<setw(10)<<salary[i]<<endl; 這樣名字中空的部分填充的是‘.’,數(shù)值中空的部分填充的是‘/’,原來具體是如何在那里添加的空格就很清楚了!
運(yùn)行結(jié)果如下:
王群平..//////1000
歐陽居成////600.34
張可..../////812.5
劉家星..////1345.2
朱江....////3345.1
(網(wǎng)頁格式原因,可能頁面上對不齊,上機(jī)試試,結(jié)果出來就明白了)

TA貢獻(xiàn)1909條經(jīng)驗 獲得超7個贊
首先。cout、endl和cin這兩個輸入輸出換行函數(shù)是 類std 里面的函數(shù)。
所以,在寫程序時,若已聲明使用std類命名空間,即寫有using namespace std語句,則在該命名空間內(nèi),cout和cin的使用是合法的。
當(dāng)程序沒有注明std類的命名空間時,即沒有寫using namespace std語句,則若想使用cout、endl和cin作輸入輸出換行,那么就得 以調(diào)用類std函數(shù)的形式 來調(diào)用cout、cin、endl函數(shù),即聲明有using std::cout、using std::endl等等 (如同樓組main函數(shù)前聲明的using std::cout;using std::endl;)。
或者在沒有寫有using namespace std語句的情況下,同時也沒有using std::cout,using std::endl等語句,在若仍然想使用cout、cin等函數(shù),則書寫格式為std::cout(例如:std::cout<<s1.length()<<','<<s2.length()<<std::endl)。
關(guān)于設(shè)置域?qū)捄瘮?shù)setw(int),是在iomainp頭文件下使用的,即include<iomainp>。
后話:關(guān)于using std::string本人表示不解,貌似std類里面沒有string這個函數(shù)。如果樓主的意思是使用string頭文件下的各種函數(shù)(例如:s1.length() ),那么include<string>已經(jīng)聲明了。

TA貢獻(xiàn)1796條經(jīng)驗 獲得超4個贊
cout<<std::setw(10)<<s1<<","<<s2<<endl;
cout<<std::setw(17)<<s1+"&"+s2<<endl;
這兩句這樣就可以了
- 3 回答
- 0 關(guān)注
- 170 瀏覽
添加回答
舉報