2017-02-18 41 views
-1
#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或美国PHONENUMBER格式输出,但我没能做到这一点,请帮帮忙,谢谢如何实现C++手机号码格式:(000)-000-000?

回答

2

如果你想改变串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; 
} 
+0

非常感谢kamil – Ravi

+0

@Ravi如果您标记此答案为正确的,如果它解决了您的问题,我会很高兴。 :) –

0

您可以分配输入电话号码,然后像这样传递结构;

struct numbers {  
    int A; 
    int B; 
    int C; 
} // then get (A)-B-C 
+0

非常感谢OğuzhanAvcı – Ravi