为了账号安全,请及时绑定邮箱和手机立即绑定

请问setw函数除了用标准命名空间using namespace std;申明,还有其他的申明吗?

请问setw函数除了用标准命名空间using namespace std;申明,还有其他的申明吗?

烙印99 2021-12-02 05:01:14
#include <iostream>using std::cout;using std::endl;using std::string;#include "iomanip"#include <string>int main(){string s1("hello"),s2("friend");cout<<s1.length()<<','<<s2.length()<<endl;if(s1>s2)cout<<setw(10)<<s1<<","<<s2<<endl;cout<<setw(17)<<s1+"&"+s2<<endl;return 0;}运行的结果是error C2065: 'setw' : undeclared identifier。如果把程序中的using std::cout;using std::endl;using std::string;换成using namespace std;之后,程序运行结果就行了。又或者把程序里的setw(10)和setw(17)删掉之后,也行。。。不过这里我很想搞清楚还可以怎样申明setw()? 谢谢了。
查看完整描述

3 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

setw()是设置域宽的函数,默认是前面加空格右对齐。
你的程序中的setw()丢了w,其他对着呢!细心检查就没有问题了!程序运行后名字左对齐占用8个字节不足在右边补空格;数据右对齐,占用10个字节不足左补空格
想要看到底是如何填充的只要把输出语句改一下就可以了:cout<<setiosflags(ios::left)<<setfill('.')<<setw(8)<<names[i]<<resetiosflags(ios::left)<<setfill('/')<<setw(10)<<salary[i]<<endl; 这样名字中空的部分填充的是‘.’,数值中空的部分填充的是‘/’,原来具体是如何在那里添加的空格就很清楚了!
运行结果如下:
王群平..//////1000
欧阳居成////600.34
张可..../////812.5
刘家星..////1345.2
朱江....////3345.1
(网页格式原因,可能页面上对不齐,上机试试,结果出来就明白了)

查看完整回答
反对 回复 2021-12-07
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

首先。cout、endl和cin这两个输入输出换行函数是 类std 里面的函数。
所以,在写程序时,若已声明使用std类命名空间,即写有using namespace std语句,则在该命名空间内,cout和cin的使用是合法的。
当程序没有注明std类的命名空间时,即没有写using namespace std语句,则若想使用cout、endl和cin作输入输出换行,那么就得 以调用类std函数的形式 来调用cout、cin、endl函数,即声明有using std::cout、using std::endl等等 (如同楼组main函数前声明的using std::cout;using std::endl;)。
或者在没有写有using namespace std语句的情况下,同时也没有using std::cout,using std::endl等语句,在若仍然想使用cout、cin等函数,则书写格式为std::cout(例如:std::cout<<s1.length()<<','<<s2.length()<<std::endl)。
关于设置域宽函数setw(int),是在iomainp头文件下使用的,即include<iomainp>。
后话:关于using std::string本人表示不解,貌似std类里面没有string这个函数。如果楼主的意思是使用string头文件下的各种函数(例如:s1.length() ),那么include<string>已经声明了。


查看完整回答
反对 回复 2021-12-07
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

也用using std::setw;就行啊
#include <iostream>
using std::cout;
using std::endl;
#include <iomanip>
using std::setw;
#include <cstring>
using std::strcpy;
using std::strcat;



查看完整回答
反对 回复 2021-12-07
  • 3 回答
  • 0 关注
  • 347 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信