2019.03 « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 » 2019.05

C++::怎樣把一個int轉成string

這東西困擾了我2天= =|||
被同學打來問我在拜年又不知道怎麼搞,回家就抓著估狗大神在研究...
終於成功了......!!!

首先是老師提供的方法:

#include <string>
#include <iostream>
using namespace std;

int main()
{
char ss[3];
int abc = 123;
sprintf(ss,"%d",abc);
cout << ss;
}

好吧,如果return type是char*的話這是事事順景的,
可是他媽的他叫我們return string叫我們用sprintf
又不教我們把cstring轉回string!!!!!!!!!!!!!

好吧可能因為我上課都在睡覺所以我沒聽到...
而且sprintf又會搞出overflow的事情來實在超煩...
不信邪的同學可以試一下改改那個char array的長度跟int的內容接著用vc++2008 complie看看.....

基於想讓code看起來比較貼切,
發現可以用iostream中的stringstream來作為轉換的媒介!

#include <string>
#include <iostream>
using namespace std;

int main()
{
ostringstream temp;
int n = "123";
string ss;
temp << n;
ss = temp.str();

cout << ss;
}

這樣轉換起來就方便多了~也可以直接用string裡面的function~
如果非要使用cstring的話,還有一個比較安全的方法:
用 snprintf / asprintf 取代不安全的sprintf

另外關於C++ type specifiers的補充資料:
printf[C++ Reference]

Post a comment

Private comment

Sticker
X
自己満足です。

 

日本タルタロス
ロトモド(艾柯)合本應援中
Plurk
Huge Cave
Adopt one today!
XeonsisTerra
Adopt one today!
ZamirScarlet
Adopt one today!
FritzMinefield
Adopt one today!
SvetlanaTourmaline
Adopt one today!
ElianSkyquake
Adopt one today!
GaiusStardust
Monthly Quest
The Controller

Pixiv

Author:M.Tsuki
出沒注意。
多媒體系苦勞大學生
腦子有問題‧認真過度
存活在異空間‧OLG中毒
非人類危險生物

Boxes
Wanted
Recent Treasure
Trackback
Search
Sailing Route
 愉快的夥伴們:
  買定離手
  +熊仔底裤+
  Estheticism
  FireworkLAnd
  花花與他愉快的夥伴們//
  [木已成舟,人已成年]
  -[荔枝角公园.]

 SY的孩子們:
  勒古巷

 自己本家:
  Ark*Textcube
  Ark*WordPress
RSS
Friends

和此人成为好友