質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

598閲覧

【C++】式の入力を取得したい

退会済みユーザー

退会済みユーザー

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/07/15 08:35

私は現在C++を利用して計算練習をするプログラムを作成しようとしています。そこで、cinを利用して式の入力をすることは可能でしょうか?

例えば、9*(3-1)という入力をした際に18として認識させる方法をご存知の方がいらっしゃいましたらご教示願います。

開発環境はSublime Text 3です。

現在のコードは以下のような状態です。

C++

1int main(){ 2 int p; // 正解となる数 3 int answer; // 入力する答え 4 cin >> answer; 5 if(p==answer){ // 入力された式がpに等しいときこちらに分岐したい 6 "That's Correct"; 7 }else{ 8 "That's Wrong"; 9 } 10}

ご回答よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

文字列として入力した後、9 * ( 3 - 1 ) と要素を切り出して、演算子や括弧を判断して計算することになります。

過去に類似の質問が何度も出ていますので、電卓で検索してみてください。
わりと大変ですよ。

投稿2018/07/15 08:48

otn

総合スコア84505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/07/15 12:42

確かにそのように切り出すのはかなり骨が折れそうですね・・・ご回答ありがとうございます。
guest

0

構文解析をすればできますが、構文解析をする構文解析器(パーサー)自体がとても難しいので、それらは外部ライブラリを使いましょう。
"boost spirit 電卓"でgoogle検索すればお目当てのプログラムサンプルが転がってますよ。
パーサーがあっても難しいですが・・・。

投稿2018/07/15 15:15

m_yoko

総合スコア156

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問