2016-04-04 16 views
1

Ich habe derzeit diesen Code und die gesamte Formatierung ist korrekt ... Ich kann es einfach nicht scheinen, um Zeilen in der Ausgabetextdatei zu erstellen ... Wie würde ich das tun? Ich habe versucht, eine for-Schleife in der Funktion und im main() zu tun, aber es scheint nicht zu funktionieren, wenn ich das tue, also bin ich gerade sehr verwirrt.Wie erstelle ich Zeilen in einer Ausgabedatei?

#include <iostream> 
#include <string> 
#include <fstream> 
#include <iomanip> 

using namespace std; 

void output(string flightnumber, int arrival1, int arrival2, int realarrival1, int realarrival2, char dummy1, char dummy2) 
{ 
    ofstream flight; 
    flight.open("flightdata.dat"); 

    if (flight.fail()) 
    { 
     cout << "Error..." << endl; 
     exit(1); 
    } 

    cout << "Enter the flight number: "; 
    cin >> flightnumber; 

    if (flightnumber == "end") 
    { 
     exit(1); 
    } 

    flight << flightnumber << setw(4); 

    cout << "Enter the scheduled/actual arrival times (hh:mm hh:mm):"; 

    cin >> arrival1 >> dummy1 >> arrival2 >> realarrival1 >> dummy2 >> realarrival2; 
    flight << arrival1 << dummy1 << arrival2 << setw(4) << realarrival1 << dummy2 << realarrival2; 
    flight << ('\n'); 
} 

int main() 
{ 
    string flightnumber; 
    int arrival1, arrival2, realarrival1, realarrival2; 
    char dummy1, dummy2; 

    output(flightnumber, arrival1, arrival2, realarrival1, realarrival2, dummy1, dummy2); 

    return 0; 
} 
+0

"Es scheint nicht zu funktionieren" ist keine nützliche Problembeschreibung. –

+0

Nicht alle Editoren behandeln einen einzelnen neuen Zeilen-Char als Zeilenumbruch. So etwas wie Notepad will einen Zeilenumbruch '\ r' und einen neuen Zeilen-Char sehen. – Pemdas

Antwort

1

Sie verwenden nicht initialisierte Variablen in main. Sie dienen sowieso nicht dort. Entfernen Sie Variablendeklarationen von main und legte sie in output:

void output() 
{ 
    string flightnumber; 
    int arrival1, arrival2, realarrival1, realarrival2; 
    char dummy1, dummy2; 

    ofstream flight; 
    flight.open("c:\\test\\___flightdata.txt", ios::app); 
    ... 
} 

int main() 
{ 
    output(); 
    return 0; 
} 

Sie können ios::app Flagge wie erwähnt in der anderen Antwort hinzufügen möchten.

2

Sie nicht Ihre Datei anhängen, wenn Sie es kürzt und erstellt eine neue Datei zu schreiben, fügen Flag Anhängen und Dateien wie öffnen.

flight.open("flightdata.dat", ios_base::app); 
Verwandte Themen