#include <iostream>
#include <string>
#include <sstream>
using namespace std;
std::wstring inputfield;
void function(uint32_t val)
{
std::wstring keystring;
keystring = std::to_wstring(val);
inputfield = inputfield + keystring;
std::wstringstream s;
s << L"(" << inputfield << L") ";
std::wstring str = s.str();
std::wcout << str << "\n";
return;
}
int main()
{
uint32_t x ;
while(cin>>x)
{
function(x);
cout<< *(&x)<< endl;
}
return 0;
}我正在尝试字符串格式,以获得类似(000)-000-000或美国电话号码格式的输出,但我无法实现,请帮助,谢谢
发布于 2017-02-19 04:17:12
如果您想更改字符串000000000或simillar (您确实这样做了,即使输入是数字,也只需使用std::to_string将其转换),那么只需在适当的位置添加几个字符即可。
std::string format_number(std::string str) {
if(str.size() != 9) {
throw std::logic_error{"Phone number is not 9-characters long"};
}
str.insert(str.begin(), '(');
str.insert(str.begin() + 4, ')');
str.insert(str.begin() + 5, '-');
str.insert(str.begin() + 9, '-');
return str;
}https://stackoverflow.com/questions/42319907
复制相似问题