3

重複の可能性:
文字列を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
}
4

5 に答える 5

5

すぐに整数を読んでみませんか?

int num;
cin >> num;
于 2013-02-05T19:12:00.667 に答える
4

2つの変数を持つ必要はありません。C ++では、テキストを文字列として表示することなく、入力ストリームでオンザフライで変換するのが一般的です。したがって、次のように簡単に書くことができます。

int num;
std::vector< int > product( 10 );

std::cout << "enter number: ";
std::cin >> num;

...

配列の宣言方法も修正したことに注意してください。int product[10];通常、C++では使用しません。(言語で許可されている場合でも、同じ行に2つの変数を定義することはほとんどありません。)

于 2013-02-05T19:13:44.377 に答える
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;
于 2013-02-05T19:42:39.960 に答える
1

完全なサンプルは次のとおりです。

//library you need to include
    #include <sstream>
    int main()
    {
        char* str = "1234";
        std::stringstream s_str( str );
        int i;
        s_str >> i;
    }
于 2013-02-05T19:13:27.717 に答える
1

どうしてもstd::string(他の理由で..おそらく宿題?)を使用する必要がある場合は、オブジェクトを使用してをstd::stringstreamに変換できます。std::stringint

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
}
于 2013-02-05T19:14:38.527 に答える