2017-02-18 92 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