3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
setw()是設(shè)置域?qū)挼暮瘮?shù),默認(rèn)是前面加空格右對齊。
你的程序中的setw()丟了w,其他對著呢!細(xì)心檢查就沒有問題了!程序運(yùn)行后名字左對齊占用8個(gè)字節(jié)不足在右邊補(bǔ)空格;數(shù)據(jù)右對齊,占用10個(gè)字節(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)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
首先。cout、endl和cin這兩個(gè)輸入輸出換行函數(shù)是 類std 里面的函數(shù)。
所以,在寫程序時(shí),若已聲明使用std類命名空間,即寫有using namespace std語句,則在該命名空間內(nèi),cout和cin的使用是合法的。
當(dāng)程序沒有注明std類的命名空間時(shí),即沒有寫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語句的情況下,同時(shí)也沒有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這個(gè)函數(shù)。如果樓主的意思是使用string頭文件下的各種函數(shù)(例如:s1.length() ),那么include<string>已經(jīng)聲明了。

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
也用using std::setw;就行啊
#include <iostream>
using std::cout;
using std::endl;
#include <iomanip>
using std::setw;
#include <cstring>
using std::strcpy;
using std::strcat;
添加回答
舉報(bào)