setw()、setfill()、setbase()、stringstream用法

关于std::setw(),std::setfill(),std::setbase(),std::hex用法示例代码:

int main()
{
	stringstream ss;
	string str = "hello world";
	ss << std::setw(20) << setfill('0') << str;
	cout << std::setw(20) << setfill('0') << str <<endl;
	//在后边设置宽度不好使
	cout << str << setfill('0') << std::setw(20) <<endl;
	string text;
	ss >> text;
	cout << text << endl;
	int data = 100;
	cout << std::setw(20) << setfill('a') << std::setbase(16) << data <<endl;
	cout << std::setw(20) << setfill('a') << std::hex << data <<endl;
}
	return 0;

输出为:
在这里插入图片描述

说明:stringstream字符流,<<可以将字符输入进字符流,>> 可以将字符输出到string对象中,也可以通过stringstream::str()函数将字符串传给string对象,二者区别是,>>符号遇到空格就会结束字符串的传递不完整,但是stringstream::str()函数可以获得完整的字符串。

  • setw(8)在输出之前输出8个空格一般是两个tab键,一个tab键默认四个空格,所以用在后边测试不好用,一般使用就例如是段落开头,都是用在文本之前的。
  • setfill(‘0’)以字符0填充
  • setbase(8)将数字按照8进制输出,std::hex就是以16进制输出,hex就是16进制的关键字,很明显。

附加测试stringstream代码

int main()
{
    cout << "this is a test stringstream..." << endl;
    double a = 3.1415926;
    int b = 10;
    float c = 1.00;
    string text;
    stringstream ss,ss1;
    ss << "fashengshenm eshile?"<<a<<"tingting";
    ss<<b<<"nengmaisha";
    ss<<a;
    cout << "===================" << endl;
    text = ss.str();
    cout << text << endl;
    

    ss << "c++ test";
    text = ss.str();
    cout << text << endl;
    string text2;
    ss >> text2;   //通过>>的方式输入进string对象遇到空格就会结束,通过.str方式输入进字符串的话会进行完整赋值
    cout << text2 << endl;
    ss1<<a;
    ss1>>text2;
    cout << text2 << endl;
    return 0;
}

自己测试输出结果,结果就是测试stringstream.str()以及>>操作符的区别…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值