1. ホーム
  2. c++

[解決済み】エラー「system」は曖昧?[クローズド]

2022-01-26 17:16:58

質問

簡単なプログラムで、問題なく動作していますが system("CLS");system("pause"); 文の下に赤いインテリセンスの線があります。カーソルをその上に移動させると Error "system" is ambiguous. 何が原因なのでしょうか?

以下は私のコードです。

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
  int choice = 0;
  const double PI = 3.14159;
  double sideSquare = 0.0;
  double radius = 0.0;
  double base = 0.0;
  double height = 0.0;

  cout << "This program calculates areas of 3 different objects." << endl;
  cout << "1.) Square" << endl;
  cout << "2.) Circle" << endl;
  cout << "3.) Right Triangle" << endl;
  cout << "4.) Terminate Program" << endl << endl;

  cout << "Please [Enter] your object of choice: ";
  cin >> choice;
  system("CLS"); // The problem is here...

  switch(choice)
  {
   case 1: 
    cout << "Please [Enter] the length of the side of the square: ";
    cin >> sideSquare;
    cout << "The area is: " << pow(sideSquare, 2) << endl;
    break;

   case 2: 
    cout << "Please [Enter] the radius of the circle: ";
    cin >> radius;
    cout << "The area is: " << PI * pow(radius, 2) << endl;
    break;

    case 3:
    cout << "Please [Enter] the base of the triangle: ";
    cin >> base;
    cout << endl << "Now [Enter] the height of the triangle: ";
    cin >> height;
    cout << "The area is: " << (base * height) / 2 << endl;
    break;

  default:
    cout << "Please [Enter] a valid selection next time." << endl;
    return 0;
  }
  system("pause"); // ... and here.
  return 0;
}

解決方法は?

必要なのは #include <cstdlib>

出典 http://en.cppreference.com/w/cpp/utility/program/system

また、なるべく system 危険です。 プログラムが終了したときに一時停止するには、ブレークポイントを } をmainの末尾に追加してください。 画面をクリアする標準的な方法は、残念ながらありません。

今後の参考までに、赤いスクイッグは インテリセンス のエラーは、実際にコードをコンパイルするものとは別のフロントエンドによって表示されるため、特に複雑なテンプレートでは、赤い四角い線が時々間違っていることがあります。 特に複雑なテンプレートでは、赤い四角が正しく表示されないことがあります。しかし、今回を含め、ほとんどの場合、正しい表示です。