Re: intをstringに変換 ( No.1 ) |
- 名前:管理人 日時:2017/02/27 13:31
stdライブラリの string のことでしょうか?
stdライブラリを殆ど使ったことが無いので詳しくはわかりませんが、
int を string に変換は std::to_string を使うと良いようです
int i = 123;
std::string str = std::to_string( i );
string を int に変換は std::stoi を使用するようです
std::string str = "123";
int i = std::stoi( str );
|
Re: intをstringに変換 ( No.2 ) |
- 名前:ムガ 日時:2017/02/27 16:00
管理人さん、こんにちは
殆ど使ったことないのに的確な回答恐れ入ります
お陰様で無事解決できたのですが
厚かましくもう一つ質問どうかお願いします
std::string str = "きよし 120 700 1200";
を最終的には
std::string Name = "きよし";
int HP = 120;
int Atc = 700;
int Exp = 1200;
みたいにしたいのですが
(何がしたいってセーブ・ロードを作りたいと思うのですけど)
std::string Rst;
文字列 str から最初のスペース" "まで取り出し文字列 Rst に代入してそこまでを削除して
str = "120 700 1200"にする簡単な方法があったらご教授お願いします
雑な説明ですみません。他に便利な方法があるならスペースで区切る方法でなくてもなんでも構いません
ほんとに何度もすみません
|
Re: intをstringに変換 ( No.3 ) |
- 名前:はるかぜ 日時:2017/02/27 16:14
#include <vector>
#include <string>
#include <sstream> // std::ostringstream
std::vector<std::string> split(const std::string &str, char sep)
{
std::vector<std::string> v;
std::stringstream ss(str);
std::string buffer;
while( std::getline(ss, buffer, sep) ) {
v.push_back(buffer);
}
return v;
}
とりあえず↑の関数をあなたのプログラムに追加してください。
使い方はこんな感じ↓
std::string str = "きよし 120 700 1200";
std::vector<std::string> status = split(str, ' ')
std::string Name = status[0];
int HP = std::stoi(status[1]);
int Atc = std::stoi(status[2]);
int Exp = std::stoi(status[3]);
|
Re: intをstringに変換 ( No.4 ) |
- 名前:ムガ(解決) 日時:2017/02/27 17:55
はるかぜさん、こんばんは
迅速な回答ありがとうございます!
プログラムの意味はさっぱり分かりませんが
とにかくすごく助かりました
こんな高度な方法があるのかと感心するばかりです
お陰で僕のゲーム作りにもすこし光がみえてきました
感謝です!
|
Re: intをstringに変換 ( No.5 ) |
- 名前:yumetodo 日時:2017/02/28 19:21
ちなみに
https://github.com/yumetodo/string_split
を使うと
#include "string_split.hpp"//適宜いじる
std::string str = "きよし 120 700 1200";
std::string Name = str | split(' ')[0];
int HP = std::stoi(str | split(' ')[1]);
int Atc = std::stoi(str | split(' ')[2]);
int Exp = std::stoi(str | split(' ')[3]);
とすっきりかけたりします
|
Re: intをstringに変換 ( No.6 ) |
- 名前:ムガ(解決) 日時:2017/03/01 00:23
yumetodoさん、こんばんは
おお!とても便利ですね
こういう開発ができるて素晴らしいと思います
ありがたく使わせていただきます
|