Ich arbeite an einem Code, der eine C++ - Quelldatei einliest und alle "<" Symbole in "<" und alle ">" Symbole in ">" konvertiert. Ich habe die Hauptmethode geschrieben und alles schön kompiliert, aber jetzt, da ich tatsächlich meine Convert-Funktion an der Spitze des Programms schreibe, stecke ich in einer Endlosschleife fest und stoße an die Wand, was der Schuldige ist. Könnte mir jemand helfen? Ich habe das ganze Programm für den Fall, dass das Problem in meiner E/A-Codierung liegt, aber ich umgab die Funktion mit Schrägstrichen. Hoffentlich werde ich nicht geflammt.E/A-Programm in Schleife stecken C++
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
#include <cstring>
using namespace std;
//FUNCTION GOES THROUGH EACH CHARACTER OF FILE
//AND CONVERTS ALL < & > TO < or > RESPECTIVELY
//////////////THIS IS THE FUNCTION IN QUESTION//////////
void convert (ifstream& inStream, ofstream& outStream){
cout << "start" << endl;
char x;
inStream.get(x);
while (!inStream.eof()){
if (x == '<')
outStream << "<";
else if (x == '>')
outStream << ">";
else
outStream << x;
}
cout << "end" << endl;
};
///////////////////////////////////////////////////////////////////////////
int main(){
//FILE OBJECTS
ifstream inputStream;
ofstream outputStream;
string fileName;
//string outFile;
//USER PROMPT FOR NAME OF FILE
cout << "Please enter the name of the file to be converted: " << endl;
cin >> fileName;
//outFile = fileName + ".html";
//ASSOCIATES FILE OBJECTS WITH FILES
inputStream.open(fileName.c_str());
outputStream.open(fileName + ".html");
//CREATES A CONVERTED OUTPUT WITH <PRE> AT START AND </PRE> AT END
outputStream << " <PRE>" << endl;
convert(inputStream, outputStream);
outputStream << " </PRE>" << endl;
inputStream.close();
outputStream.close();
cout << "Conversion complete." << endl;
return 0;
}
Das richtige Werkzeug, um solche Probleme zu lösen ist Ihr Debugger. Sie sollten Schritt für Schritt durch Ihren Code * gehen, bevor Sie auf Stack Overflow nachfragen. Für weitere Hilfe lesen Sie bitte [Wie kleine Programme zu debuggen (von Eric Lippert)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Zumindest sollten Sie Ihre Frage bearbeiten, um ein [minimales, vollständiges und verifizierbares] (http://stackoverflow.com/help/mcve) Beispiel einzufügen, das Ihr Problem zusammen mit den Beobachtungen, die Sie in der Debugger. –
Hier sind zu viele Fehler. Beginnend mit dem altbewährten 'while! Foof'-Bug und endend mit einem Loop Of Mystery, der magisch erwartet, dass irgendeine Variable ihren Wert ohne Grund irgendwo in der Schleife ändert ... –
Unglaublich schwer das Ende zu erreichen der Datei in einer Schleife, die nie aus der Datei liest. – user4581301