#C++ の入力の方法がわからない
AOJスタックに関する問題
上記の問題のcinを用いた入力方法がわかりません。
入力例 1 2 + 3 4 - *
出力例 -3
のようになれば良いですが
以下のコードを用いてcinで入力した場合に
出力が何もされません。
##実装
cpp
1#include <bits/stdc++.h> 2using namespace std; 3 4int top, S[1000]; 5 6void push(int x) { 7 S[++top] = x; 8} 9 10int pop() { 11 top--; 12 return S[top+1]; 13} 14 15int main(){ 16 int a, b; 17 top = 0; 18 string s; 19 while(cin >> s) { 20 if(s[0] == '+') { 21 a = pop(); 22 b = pop(); 23 push(a+b); 24 } else if(s[0] == '-') { 25 b = pop(); 26 a = pop(); 27 push(a-b); 28 } else if(s[0] == '*') { 29 a = pop(); 30 b = pop(); 31 push(a * b); 32 } else { 33 push(stoi(s)); 34 } 35 } 36 cout << pop() << endl; 37 return 0; 38}
##入力部分
この部分が問題があると思うのですがどのようにするべきかわかっていません。
cpp
1while(cin >> s) { 2... 3}
C言語ではこのように書きますがcinを用いた場合にどう表すべきなのでしょうか?
c
1while(scanf("%s", s) != EOF ) { 2... 3}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/12 12:45