🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

C++

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

Q&A

解決済

2回答

3585閲覧

理由が分からないコンパイルエラーが出る(変数が宣言できていない?)

退会済みユーザー

退会済みユーザー

総合スコア0

変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

C++

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

0グッド

0クリップ

投稿2021/03/24 04:28

実現したいこと・困っていること

C++で試しに電卓を作ってみようと思い、一通り作り終わりました。
それで、コンパイル時にエラーが出たのですが、何がいけないのか、どう修正すればいいのかが分かりません。
コンパイラの画面を見た感じ、変数が宣言出来ていないように感じますが...。どうでしょう?
次にソースコードとコンパイラの画面をコピーするので、何がいけないか、どう修正すればいいか、教えてください。
お願いします。

ソースコード

C++

1#include <iostream> 2#include <string> 3 4int main() { 5 string description; //使い方見る? 6 string again; //もう一度計算する?&終了の確認 7 string type; //計算方法 8 double value1; //値1 9 double value2; //値2 10 double value; //値 11 double ans; //答え 12 13 std::cout << "計算機 v1.0.0" << std::endl; 14 std::cout << "このプログラムの使い方を見ますか?(y:はい n:いいえ):"; 15 std::cin >> description; 16 if(description == "y" || description == "Y") { 17 std::cout << "ここに説明を書く" << std::endl; 18 } 19 else if(!(description == "y" && description == "n" && description == "Y" && description == "N")) { 20 std::cout << "ERROR!!!" << std::endl; 21 std::cout << "プログラムを終了します。何か文字を入力し、enterキーを押してください..." << std::endl; 22 std::cin >> again; 23 24 return 1; 25 } 26 27 do { 28 std::cout << "何の計算をしますか?" << std::endl; 29 std::cout << "a:足し算\tb:引き算\tc:掛け算\td:割り算\te:平方根:"; 30 std::cin >> type; 31 32 if(type == "a" || type == "A") { 33 //足し算 34 //何と何を足す? 35 std::cout << "(A+B=ans)A="; 36 std::cin >> value1; 37 std::cout << "(A+B=ans)B="; 38 std::cin >> value2; 39 40 //計算 41 ans = value1 + value2; 42 43 //出力 44 std::cout << "ans=" << ans << std::endl; 45 } 46 else if(type == "b" || type = "B") { 47 //引き算 48 //何から何を引く? 49 std::cout << "(A-B=ans)A="; 50 std::cin >> value1; 51 std::cout << "(A-B=ans)B="; 52 std::cin >> value2; 53 54 //計算 55 ans = value1 - value2; 56 57 //出力 58 std::cout << "ans=" << ans << std::endl; 59 } 60 else if(type == "c" || type == "C") { 61 //掛け算 62 //何と何を掛ける? 63 std::cout << "(A×B=ans)A="; 64 std::cin >> value1; 65 std::cout << "(A×B=ans)B="; 66 std::cin >> value2; 67 68 //計算 69 ans = value1 * value2; 70 71 //出力 72 std::cout << "ans=" << ans << std::endl; 73 } 74 else if(type == "d" || type == "D") { 75 //割り算 76 //何から何を割る? 77 std::cout << "(A÷B=ans)A="; 78 std::cin >> value1; 79 std::cout << "(A÷B=ans)B="; 80 std::cin >> value2; 81 82 //計算 83 ans = value1 / value2; 84 85 //出力 86 std::cout << "ans=" << ans << std::endl; 87 } 88 else if(type == "e" || type == "E") { 89 //平方根 90 //何の平方根が知りたい? 91 std::cout << "(√x)x="; 92 std::cin >> value; 93 94 //計算 95 ans = sqrt(value); 96 97 //出力 98 std::cout << "√x=" << ans << std::endl; 99 } 100 else { 101 std::cout << "ERROR!" << std::endl; 102 std::cout << "プログラムを終了します。何かの文字を入力し、enterキーを押してください..." << std::endl; 103 std::cin >> again; 104 105 return 1; 106 } 107 108 std::cout << "さらに計算をしますか?(y:continue\tn:exit):"; 109 std::cin >> again; 110 }while(again == "y" || again == "Y"); 111 112 std::cout << "プログラム終了の前に、エラーの原因教えてくれ!!!"; 113 114 return 0; 115}

コンパイラの画面

D:\development\CUI-programs\calculator>cl /EHsc calculator.cpp Microsoft(R) C/C++ Optimizing Compiler Version 19.28.29913 for x86 Copyright (C) Microsoft Corporation. All rights reserved. calculator.cpp calculator.cpp(5): error C2065: 'string': 定義されていない識別子です。 calculator.cpp(5): error C2146: 構文エラー: ';' が、識別子 'description' の前に必要です。 calculator.cpp(5): error C2065: 'description': 定義されていない識別子です。 calculator.cpp(6): error C2065: 'string': 定義されていない識別子です。 calculator.cpp(6): error C2146: 構文エラー: ';' が、識別子 'again' の前に必要です。 calculator.cpp(6): error C2065: 'again': 定義されていない識別子です。 calculator.cpp(7): error C2065: 'string': 定義されていない識別子です。 calculator.cpp(7): error C2146: 構文エラー: ';' が、識別子 'type' の前に必要です。 calculator.cpp(7): error C2065: 'type': 定義されていない識別子です。 calculator.cpp(15): error C2065: 'description': 定義されていない識別子です。 calculator.cpp(16): error C2065: 'description': 定義されていない識別子です。 calculator.cpp(16): error C2065: 'description': 定義されていない識別子です。 calculator.cpp(19): error C2065: 'description': 定義されていない識別子です。 calculator.cpp(19): error C2065: 'description': 定義されていない識別子です。 calculator.cpp(19): error C2065: 'description': 定義されていない識別子です。 calculator.cpp(19): error C2065: 'description': 定義されていない識別子です。 calculator.cpp(22): error C2065: 'again': 定義されていない識別子です。 calculator.cpp(30): error C2065: 'type': 定義されていない識別子です。 calculator.cpp(32): error C2065: 'type': 定義されていない識別子です。 calculator.cpp(32): error C2065: 'type': 定義されていない識別子です。 calculator.cpp(46): error C2065: 'type': 定義されていない識別子です。 calculator.cpp(46): error C2065: 'type': 定義されていない識別子です。 calculator.cpp(60): error C2065: 'type': 定義されていない識別子です。 calculator.cpp(60): error C2065: 'type': 定義されていない識別子です。 calculator.cpp(74): error C2065: 'type': 定義されていない識別子です。 calculator.cpp(74): error C2065: 'type': 定義されていない識別子です。 calculator.cpp(88): error C2065: 'type': 定義されていない識別子です。 calculator.cpp(88): error C2065: 'type': 定義されていない識別子です。 calculator.cpp(103): error C2065: 'again': 定義されていない識別子です。 calculator.cpp(109): error C2065: 'again': 定義されていない識別子です。 calculator.cpp(110): error C2065: 'again': 定義されていない識別子です。 calculator.cpp(110): error C2065: 'again': 定義されていない識別子です。

環境・詳細

プログラミング言語:C++
使用したテキストエディタ:Visual Studio Code
使用したコンパイラ:Developer Command Prompt for VS 2019

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

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

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

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

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

guest

回答2

0

ベストアンサー

stringstd 名前空間の中にあるので修飾せずに使うことは基本的に出来ません。 std::string とするか、冒頭で using namespace std; を書いておく必要があります。

string が存在しないことからそれを使った変数宣言も無効になってエラーが派生している状態です。

投稿2021/03/24 04:34

SaitoAtsushi

総合スコア5684

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

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

退会済みユーザー

退会済みユーザー

2021/03/24 04:41

回答ありがとうございます!!! エラーが解消されました。 stringにもstd::が必要だったんですね...
guest

0

stringstd::string に置き換えてください。

投稿2021/03/24 04:31

int32_t

総合スコア21679

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

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

退会済みユーザー

退会済みユーザー

2021/03/24 04:39

回答ありがとうございます!!! エラーが治りました saito atsushiさんの方が詳しいので、ベストアンサーはsaito atsushiさんにさせていただきます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問