重複の可能性:
文字列をintに変換するc ++
ユーザーに9つの数字を順番に入力してもらいます。文字列番号をintに変換する必要があります
string num;
int num_int, product[10];
cout << "enter numbers";
cin >> num;
for(int i =0; i<10; i++){
product[i] = num[i] * 5; //I need the int value of num*5
}
重複の可能性:
文字列をintに変換するc ++
ユーザーに9つの数字を順番に入力してもらいます。文字列番号をintに変換する必要があります
string num;
int num_int, product[10];
cout << "enter numbers";
cin >> num;
for(int i =0; i<10; i++){
product[i] = num[i] * 5; //I need the int value of num*5
}
すぐに整数を読んでみませんか?
int num;
cin >> num;
2つの変数を持つ必要はありません。C ++では、テキストを文字列として表示することなく、入力ストリームでオンザフライで変換するのが一般的です。したがって、次のように簡単に書くことができます。
int num;
std::vector< int > product( 10 );
std::cout << "enter number: ";
std::cin >> num;
...
配列の宣言方法も修正したことに注意してください。int product[10];
通常、C++では使用しません。(言語で許可されている場合でも、同じ行に2つの変数を定義することはほとんどありません。)
文字列に変換して元に戻す最も簡単な方法は、変換関数を使用することです。
std::string s="56";
int i=std::stoi(s);
http://en.cppreference.com/w/cpp/string/basic_string/stol
帰ってきた
int i=56;
std::string s=std::to_string(i);
http://en.cppreference.com/w/cpp/string/basic_string/to_string
もちろん、入力を読んでいる場合は、その場でそれを行う方がよいでしょう。
int i;
std::cin >> i;
完全なサンプルは次のとおりです。
//library you need to include
#include <sstream>
int main()
{
char* str = "1234";
std::stringstream s_str( str );
int i;
s_str >> i;
}
どうしてもstd::string
(他の理由で..おそらく宿題?)を使用する必要がある場合は、オブジェクトを使用してをstd::stringstream
に変換できます。std::string
int
std::stringstream strstream(num);
int iNum;
num >> iNum; //now iNum will have your integer
atoi
または、 Cの関数を使用して支援することもできます
std::string st = "12345";
int i = atoi(st.c_str()); // and now, i will have the number 12345
したがって、プログラムは次のようになります。
vector<string> num;
string holder;
int num_int, product[10];
cout << "enter numbers";
for(int i = 0; i < 10; i++){
cin >> holder;
num.push_back(holder);
}
for(int i =0; i<10; i++){
product[i] = atoi(num[i].c_str()) * 5; //I need the int value of num*5
}