2016-11-24 13 views
-1

ich folgende Debug-Fehler erhalte, wenn versucht wird, den ersten Teil meines Programms auszuführen:Empfangen eines Fehler debug, wenn Programm auszuführen versucht

Debug Error!

Programm: ... \ user \ Desktop \ PunchLineProgram \ Debug \ PunchLineProgram.exe Modul: ... \ user \ Desktop \ PunchLineProgram \ Debug \ PunchLineProgram.exe

Datei: Run- Time Check Failure # 3 - T (Drücken sie Wiederholen, um die Anwendung zu debuggen)

ich bin versucht, den Benutzer zu haben, auszuwählen, ob sie einen Witz, laufen und wenn \ else-Anweisung hören möchten, dass folgende Ausgabe eine Meldung an der Benutzer, basierend auf ihrer Antwort. Wenn ich diese Anweisungen auskommentiere, erhalte ich den Fehler nicht, wenn ich versuche, das Programm auszuführen. Ich weiß, dass ich wahrscheinlich etwas Einfaches vermisse, da ich ein Neuling bin. Hier ist der Code, den ich bis jetzt habe:

/*Include Section*/ 
#include <iostream> 
#include <string> 
#include <fstream> 
#include <iomanip> 
#include <cctype> 

/*Namespace Section*/ 
using namespace std; 

/*Function Prototypes Section*/ 
void displayAllLines(ifstream &infile); 
void displayLastLine(ifstream &infile); 

/*Main section: this is the entry point of the program, which controls the flow of execution*/ 
int main() 
{ 
    string file1; 
    string file2; 
    ifstream joke; 
    ifstream punchline; 
    int decision; 
    char y; 
    char n; 

    cout << "*******************************************************************************" << endl; 
    cout << setw(48) << "Punchline Program" << endl; 
    cout << "*******************************************************************************" << endl; 
    cout << endl; 
    cout << "Welcome to the Punchline Program!" << endl; 
    cout << "Are you ready to hear a joke? (y or n): "; 
    cin >> decision; 

    if (decision == y) 
    { 
     cout << "Great! Let's get started!" << endl; 
    } 

    else if (decision == n) 
    { 
     cout << "Ah, no sense of humor, I see. Time to make like a tree and leaf (queue rimshot)!" << endl; 
    } 

    system("PAUSE"); 

} 

Jede Hilfe würde sehr geschätzt werden!

+1

Das richtige Werkzeug, solche Probleme zu lösen, ist Ihr Debugger: Sie sollten Ihren Code Zeile für Zeile durchgehen, * bevor Sie auf Stack Overflow nachfragen.Weitere Informationen finden Sie unter [Debuggen kleiner Programme (von Eric Lippert)] (https://ericlippert.com/2014)/03/05/how-to-debug-small-programme /) Zumindest sollten Sie Ihre Frage bearbeiten, um eine [Minimal, Complete und Verifizierbar] (http://stackoverflow.com/help/mcve) Beispiel, das Ihr Problem reproduziert, zusammen mit den Beobachtungen, die Sie im Debugger gemacht haben –

Antwort

0

Wenn char Vergleich sollten Sie verwenden '': char Antwort

if (answer == 'y') { *//this only checks for LOWER case y* 
cout << "You selected Yes" << endl; 
} 

, wenn auf einen String mit "" int/float/double Vergleich ... Sie können einfach die Variable verwenden.

Abgesehen davon, Ihre Entscheidung Variable als int, wenn es Zeichen sein sollte, und Sie brauchen nicht char y noch n. (Sie selbst noch nie in diesem Code verwendet wird)

Ich würde vorschlagen, aufzublicken C++ Tutorials, die meisten zeigen und erklären den Unterschied zwischen char/string "und“.

+0

Vielen Dank für die Informationen, Greg! Ich werde diese nachschlagen. Ich habe den Code aktualisiert, um char antwort zu verwenden und es ist arbeitet jetzt. Ich schätze Ihre Hilfe! – Clarky7782

Verwandte Themen