de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
Patrick Johnston
Patrick Johnston
質問

C ++ cinとC sscanf

だから、私はCでこれを書いたので、sscanfはsをスキャンしますが、それを破棄してdをスキャンして保存します。したがって、入力が「Hello 007」の場合、Helloはスキャンされますが破棄され、007がdに格納されます。

static void cmd_test(const char *s)
{
    int d = maxdepth;
    sscanf(s, "%*s%d", &d);
}

だから、私の質問は、私はC + +で同じことをすることができますか?おそらくstringstreamを使用していますか?

3 2011-10-27T22:23:20+00:00 3
プログラミング
c++
c
scanf
stringstream
cin
ildjarn
27日 10月 2011 в 10:27
2011-10-27T22:27:35+00:00
さらに
ソース
編集
#56793577
#include 
#include 

static void cmd_test(const char *s)
{
    std::istringstream iss(s);
    std::string dummy;
    int d = maxdepth;
    iss >> dummy >> d;
}
5
0
Kerrek SB
27日 10月 2011 в 10:29
2011-10-27T22:29:01+00:00
さらに
ソース
編集
#56793579

匿名の文字列を実際に抽出することはできませんが、ダミーを作成して無視するだけで済みます。

#include 
#include 
// #include //see below

void cmd_test(std::istream & iss)//any std::istream will do!
{

 //alternatively, pass a `const char * str` as the argument,
 //change the above header inclusion, and declare:
 //std::istringstream iss(str);

  int d;
  std::string s;

  if (!(iss >> s >> d)) { /* maybe handle error */ }

 //now `d` holds your value if the above succeeded
}

条件付きで入力すると、抽出が失敗する可能性があることに注意してください。エラーが発生した場合の処理​​は、あなた次第です。実際の関数がエラーを既に伝えている場合は、単にエラーを返すことができるかもしれませんが、C ++の例外は例外をスローすることです。

使用例:

#include 
#include 

int main()
{
  cmd_test(std::cin);

  std::ifstream infile("myfile.txt");
  cmd_test(infile);

  std::string s = get_string_from_user();
  std::istringstream iss(s);
  cmd_test(iss);
}
3
0
Christian Rau
27日 10月 2011 в 10:28
2011-10-27T22:28:44+00:00
さらに
ソース
編集
#56793578

何について:

#include 
#include 

static void cmd_test(const std::string &s)
{
    int d = maxdepth;
    std::string dont_care;
    std::istringstream in(s);
    in >> dont_care >> d;
}
1
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Roxana Elizabeth CASTILLO Avalos
登録済み 1週間前
2
Hideo Nakagawa
登録済み 1週間前
3
Sergiy Tytarenko
登録済み 1週間前
4
shoxrux azadov
登録済み 1週間前
5
Koreets Koreytsev
登録済み 2週間前
© de-vraag :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属