C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■91295 / 親階層)  空白を含めた数字入力、及び、区切り
□投稿者/ ぷら (2回)-(2019/06/13(Thu) 07:57:50)

分類:[C/C++] 

ふと疑問に思ったことがあります。(効率が悪いという点は置いておくとして、振る舞いに疑問を抱きました。)
標準入力による空白を含む文字列があり、これをカンマ区切りにし、整数に変換した結果はどういう振る舞いをするのかということです。

キーボードで 1,2, 3,4 , 5 ,6 1,7 みたいな空白を含む入力があったと想定します。
ここで str_B[4]、入力では両側に空白がある" 5 "に当たるところに着目して考えたとき。

@標準入力cinでは空白を受け付けず、対応方法はcin.getlineがあるかと思います。
Aそして、カンマ区切りすると単純に、str_B[4]=" 5 "と両側に空白が含まれた状態なのですか?
Bもし、stoiで整数化したときには、空白のせいで整数ではないと判定して0を返すのか、空白を無視して5と返してくれるのかどちらでしょうか。

予想では str_B[5]="6 1"というケースもあるので0を返すのかなと思っています。
もし、0を返すという場合、str_B[5]というケースを想定しない場合で、空白を含む文字列を整数化する方法って存在したりしますか?



string str str_B;
stringstream str_A{str};

cin.getline(str,str.size());               …@
while (getline(str_A, num, ',')){str_B.push_back(num);}  …A
int hoge = stoi(str_B[4].c_str());            …B
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: 空白を含めた数字入力、及び、区切り /774RR
 
上記関連ツリー

空白を含めた数字入力、及び、区切り / ぷら (19/06/13(Thu) 07:57) #91295 ←Now
Re[1]: 空白を含めた数字入力、及び、区切り / 774RR (19/06/13(Thu) 09:23) #91297
  └ Re[2]: 空白を含めた数字入力、及び、区切り / ぷら (19/06/13(Thu) 18:44) #91304 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信