質問する
2265 次
1 に答える
1
フォーマットされた入力を使用しstd::string
て最初の単語のみを読み取る場合: 先頭の空白をスキップした後、最初の空白に遭遇するまで文字列が読み取られます。その結果、入力( )
は一致するはずですstd::cin >> str
が、読み取りのみになります(
。したがって、入力はおそらく次のようになります。
if (std::getline(std::cin, str)) {
// algorithm for matching parenthesis and brackets goes here
}
still を使用std::getline()
すると、入力がどのように表示されるか、つまり入力が 1 行にあることが前提になります。アルゴリズムが入力全体を処理する必要がある場合は、std::cin
使用します
str.assign(std::istreambuf_iterator<char>(std::cin),
std::istreambuf_iterator<char>());
アルゴリズムは不必要に複雑だと思いますが (かっこの種類を格納するスタックで十分です)、動作するはずだと思います。つまり、私が見つけた唯一の問題は、入力を取得する方法です。
于 2013-09-15T18:30:25.410 に答える