Ich mache ein Programm für eine Klasse in der Schule, und wenn ich versuche, den Code auszuführen, schrieb ich unten (nur die Hälfte des Projekts ist fertig, aber es ist in einem Zustand, wo es sollte sowieso laufen) das Menü kommt gut in Ordnung, aber dann springt es direkt zum Ende des Programms und läßt mich den wichtigen Teil nicht eingeben.Mein C++ Programm akzeptiert keine Eingaben nach dem Menü
Wenn ich das Menü entferne (was eine Notwendigkeit später sein wird, wenn ich beende das Projekt) es funktioniert gut, aber wenn es da ist, wie ich es sein muss, führen sie es gewohnt richtig
//Project 4 Written By Nate
#include <iostream>
#include <iomanip>
using namespace std;
int menuOption;
char stockName[21],symbol[10];
float openingPrice,closingPrice,numberShares,gain;
int main()
{
// MENU //
cout<<"Welcome to Project 4! Please select the program you would like to run:\n\n 1)Stock Program\n\nEnter your selection: ";
cin>>menuOption;
if(menuOption == 1) {
goto stockProgram;
} else
{
cout<<"Invalid response received. Program will now terminate";
return 0;
}
stockProgram:
cout<<"This program will ask you information about a stock you own.\n\n";
cout<<"Enter stock name: ";
cin.get(stockName,21);
cin.ignore(80,'\n');
cout<<"Symbol: ";
cin.get(symbol,10);
cin.ignore(80,'\n');
cout<<"Enter opening price: ";
cin>>openingPrice;
cout<<"Enter closing price: ";
cin>>closingPrice;
cout<<"Enter the number of shares: ";
cin>>numberShares;
cout<<"\n\n";
gain=(numberShares*closingPrice)-(numberShares*openingPrice);
cout<<setw(10)<<"Stock Name"<<setw(10)<<"Symbol"<<setw(10)<<"Opening"<<setw(10)<<"Closing"<<setw(10)<<"Shares"<<setw(11)<<"Gain\n";
cout<<setw(10)<<stockName<<setw(10)<<symbol<<setw(10)<<openingPrice<<setw(10)<<closingPrice<<setw(10)<<numberShares<<setw(10)<<gain<<"\n\n";
cout<<"=====================================================================\n";
cout<<" This gain could've been yours, too bad you are an anti-mac person.\n";
return 0;
}
Dank ..
in Erwägung ziehen, eher eine Funktion als 'gehe zu stockProgram;'. – user4581301
Empfehlen Sie das Testen der Eingabe, um sicherzustellen, dass der Lesevorgang erfolgreich war und der Stream nicht fehlgeschlagen ist. 'if (cin >> menuOption) {tu Zeug} else {handle error}' – user4581301
Hat dich jemand auf [Debugging-Software] (https://en.wikipedia.org/wiki/Debugger) hereingelassen? Ein Debugger kommt mit nahezu jeder Entwicklungsumgebung zum Einsatz. Es ermöglicht Ihnen, die Ausführung Ihres Programms zu steuern, es bei Bedarf Zeile für Zeile auszuführen und den Zustand der Variablen zu überwachen. Wenn Sie wissen, wie Sie Debugger verwenden, wird Ihr Leben viel einfacher und der Debugger-Einsatz ist eine wesentliche Fähigkeit für den arbeitenden Programmierer. – user4581301