2011-10-17 32 views
1

私は0から100までの整数を入力するようにユーザーに求め、入力された各数字と何回入力されたかを尋ねるコンソールプログラムを作成しています。ユーザーが入力する各数字はスペースで区切られ、0が入力されると入力が終了します。これまで私はcin.getlineを使用して数字を文字配列に格納しています。これは、ASCII文字として格納されている数値を操作する能力を制限します。ユーザーが10を入力した場合、10を新しい配列に単一の整数として格納できるようにしたいと考えています(s[i]=converted_numberなど)。数字の文字配列を整数に変換する

+0

を参照してください。 – thumbmunkeys

+0

どのように数字である文字配列の中の要素を整数に変換するのですか?私が必要とするのは、s [0]のような1つの配列ポインタをとり、 '0'などの値を0の整数に変換して別の配列に格納する方法です。ごめんなさい。 – user999861

答えて

4

代わりのcin.getlineを使用して簡単に実行します。整数の形であなたの入力を取得します

int input; 
while(cin >> input, input != 0) 
{ 
    ...do computations or store it somewhere... 
} 

を。

+0

非常に真です。私はそのように始めました。しかしcinはスペースで止まります。 – user999861

+0

@ user999861:そのため、これを複数回呼び出すたびに、別々の(スペースで区切られた)整数値を抽出します。入力が0のときは、ループを解除します。 –

+0

私はあなたがこれで行くつもりです。私はそのループを読んでいなかった。それがうまくいくかどうかは分かりません。 – user999861

1

これがあなたが探しているものなのかどうかは分かりませんが、ブーストには素晴らしいことがあります。それはlexical_castと呼ばれています。 http://www.boost.org/doc/libs/1_47_0/libs/conversion/lexical_cast.htm

+0

私は解決策としてブースト付きポストの後にポストを読んでいます。私はそれに飛びつくだろうが、私は学生と私はクラスのためにこれをやっている。それが許されるかどうかわからない。私は入力を感謝tho。 – user999861

+0

ブーストはC++ライブラリ(STLを数えていない)ですが、使用しないC++ソフトウェアがたくさんあることはわかりません。それ以外には 'itoa()'(C++標準の一部ではない)があり、K-balloのような型安全な方法で 'cin'を使用しています。 – Florian

+0

@krynr BoostはC++ライブラリであるかもしれませんが、言語自体を学び/教えることに関しては、Boostのほとんどはstd ::自身の多くであるように非常に非生産的です。それは問題解決の正しい本能を生み出すものではありません。これはOPから明らかであったはずです。 –