ページ 11

stringによる文字列の読み取り

Posted: 2011年9月03日(土) 21:51
by setton
settonです。
stringによる文字列の読み取りについて質問です
C1やC2といったCの後に数字のついた数、
H,G,
L1やL2といったLの後に数字のついた数
が、二つ、空白を挟んでランダムに並んだあと空白を挟んで数字が並んでいる文字を読み取りたいのですが…
わかりづらくてすみません。
たとえば
C48 H 10
G L2 5
みたいな感じです。
今、C++を使って

コード:

string<int> a,b;
int n;
scanf("%s %s %d",&a.c_str,&b.c_str,&n);
}
としたところ、エラーが出てきました。
stringより使いやすいものがあればそれでも構わないのですが、分かる方がいたら教えてください。

Re: stringによる文字列の読み取り

Posted: 2011年9月03日(土) 22:01
by h2so5
文字列を読み込んだあと、どのように変数に代入したいのかがよく分からないので詳しく書いてください。
また、std::stringのc_str()関数は読み取り専用なので戻り値のポインタには書き込めません。

Re: stringによる文字列の読み取り

Posted: 2011年9月03日(土) 22:08
by setton
c_strって読み取り専用なんですか!?
うーん…

コード:

cin >> a >>' '>> b >>' '>>n;
としたら可能ですかね?
文字列を読み込んだあと、どのように変数に代入したいのかがよく分からないので詳しく書いてください。
よく意味が分からないんですが…
理解力不足ですみません。
文字列を読み込んだ後は

コード:

string::size_type index = a.find('H');
          if(index != string::npos){
                   //実処理~~~
             //以下同様に…
という風に判定して行こうかと思っているのですが

Re: stringによる文字列の読み取り

Posted: 2011年9月03日(土) 23:10
by a5ua
以下のコードでOKだと思います。

コード:

std::string a;
std::string b;
int n;

std::cin >> a >> b >> n;

Re: stringによる文字列の読み取り

Posted: 2011年9月03日(土) 23:49
by Cr
回答ありがとうございます
scanfなんか使うからめんどくさくなってるんですねw
cinで空白続きの物を読み取ったことがなかったのでてっきりできないのかと…
回答くださった皆様ありがとうございました!