C/C++教程

C++格式化数字输入字符串的几个办法

本文主要是介绍C++格式化数字输入字符串的几个办法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1 最为熟知的就是sprintf了,不多说。

2 假如你用Qt的话,还可以用QString::arg()方法

3 这里着重讲讲std::stringstream。它是C++17标准引进的。详情可见

integer - Convert a number to a string with specified length in C++ - Stack Overflowicon-default.png?t=L9C2https://stackoverflow.com/questions/225362/convert-a-number-to-a-string-with-specified-length-in-c

#include <sstream>
#include <iomanip>

std::stringstream ss;
ss << 900;
std::string s = ss.str();

s 的内容就变成了"900"

如果你需要字符串占据固定的长度,比如5个字符,那么代码改为如下:

#include <sstream>
#include <iomanip>

std::stringstream ss;
ss << std::setw(5) << 900;
std::string s = ss.str();

s的内容变成了"  900"。900前面有两个空格。

如果你想用其他字符,比如0,代替空格,代码改为如下:

#include <sstream>
#include <iomanip>

std::stringstream ss;
ss << std::setw(5) << std::setfill('0') << 900;
std::string s = ss.str();

最后指出一点,stringstream调用时,可能会加锁。所以在多线程情况下,可能影响并行。而sprintf不会加锁。

 

这篇关于C++格式化数字输入字符串的几个办法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!