2

私は自分のクラス用にこのコードを書きました。デバッグすると実行されますが、数秒以内にシャットダウンします。ここで何が間違っているのかわかりません。私は本当にC ++が初めてです。

コードは次のとおりです。

#include "stdafx.h"
#include<iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
 {
  double gallons;
  double startmile;
  double endmile;
  double totalmilestravelled;

  cout << "This Program Calculates your vehicle's gas mileage on this trip\n" << endl;
  cout << "What is the number of gallons consumed on the trip: ";
  cin  >> gallons;
  cout << "\nWhat was your ending mile?";
  cin  >> endmile;
  cout << "\nWhat was your starting mile?";
  cin  >> startmile;

  totalmilestravelled = endmile-startmile;
  double mpg = totalmilestravelled/gallons;

  cout << "your gas mileage is: " << mpg << endl;
  return 0;
  }

これがエラーです: プログラム '[9848] gasmileage.exe: Native' はコード 0 (0x0) で終了しました。

4

1 に答える 1

1

これはエラーではありません。プログラムは正常に終了しました。プログラムを実行すると、プログラムによって指定された終了コードで実行され、終了します。この場合、0 を返すため、プログラムはコード 0 で終了します。プログラムを「一時停止」して、プログラムを閉じる前に結果を確認できるようにする場合は、return ステートメントの直前にこれを追加します。

cin.ignore(128, '\n');

cin.get();

最初の行は、標準入力に残った改行を破棄します。入力ストリームについて詳しく学ぶまでは、これについてあまり心配する必要はありませんが、ユーザーからの数値入力を読み取った後に文字列を読み取ろうとする場合は、これを行う必要があります。2 行目では、ユーザーに何らかの入力を求めるプロンプトが表示されます (リターンを押します)。入力が何であるかは気にせず、入力に対して何もするつもりはありません。プログラムを続行する前に何が起こっているかを確認できるように、プログラムにユーザー入力を強制的に待機させたいだけです (この場合、プログラムはすぐに終了します)。

「何かキーを押してください」というプログラムについて考えてみてください。ここでやっていることは同じです。ユーザーに出力を表示する時間を与えます。

于 2013-09-13T04:07:40.190 に答える