2017-01-13 3 views
0

So könnte diese Frage gestellt werden, aber für das Leben von mir kann ich nirgends finden. Vielleicht formuliere ich es nicht richtig. Entschuldigung wenn ja.C++ neue Eingabe in Datei aus vorhandenen Eingabevariablen

Also im Grunde schreibe ich in eine Datei eine Liste von Taxi-Nummern und Rang-IDs. Wenn ich es eintippe, schreibt es in die Datei korrekt, aber es wiederholt die gleiche Eingabe, wenn das Sinn macht.

Hier ist mein Code dafür:

void transactionlog(int taxi_number, int rank_id) 
{ 
    int count = 0; 

    ofstream myfile; 
    myfile.open("transactionlog.txt"); 

    while (count < 2) 
    { 
     myfile << "Joined the rank: "; 
     myfile << "\n\tTaxi number: " << taxi_number; 
     myfile << "\n\tRank id: " << rank_id; 
     count = count + 1; 
    } 


} 

void main() 
{ 
    node* front = NULL; 
    node* back = NULL; 

    int choice; 
    int taxi_number; 
    int rank_id; 



    do { 
     choice = menu(); 
     switch (choice) 
     { 
     case 1: 
      cout << "Enter your taxi number: >"; 
      cin >> taxi_number; 
      cout << "Enter your rank id: >"; 
      cin >> rank_id; 
      cout << "\n"; 
      joinRank(front, back, taxi_number); 
      transactionlog(taxi_number, rank_id); 

     break; 

Dann ist hier die Ausgabe erhalte ich (im Textdokument umformatiert)

Eintritt in den Rang: Taxi-Nummer: 434 Rank-ID : 23

Eintritt in den Rang: Taxi-Nummer: 434 Rank-ID: 23

Ich möchte, dass der zweite Eintrag in der Datei ein anderes Datum hat, basierend auf dem, was ich eingegeben habe.

Sorry, wenn dies lange

+0

Für solche lokalisierten Fragen gibt es selten dupliziert. Denken Sie noch einmal darüber nach, was Ihr Programm bedeutet, vielleicht gehen Sie Schritt für Schritt durch das Programm. Sie werden herausfinden, warum * es doppelte Einträge gibt, und dann können Sie herausfinden, wie Sie andere Daten hinzufügen. – Rakete1111

+1

Ich denke, Sie müssen hier [Gummi Ente Debugging] (https://en.wikipedia.org/wiki/Rubber_duck_debugging) hier tun. –

+0

Sie sollten die Liste durchsuchen, die Sie in 'joinRank' erstellen sollten, und die Einträge drucken. (Sie scheinen zu glauben, dass das zweite 'myfile <<" \ n \ tRank id: "<< rank_id' ein anderes Ergebnis als das erste' myfile << "\ n \ tRank id:" << rank_id' ergibt.) – molbdnilo

Antwort

0

erste umständliche ist, warum Sie eine Schleife verwenden, die zweimal wiederholt sich der Eingang zu schreiben einzureichen?

Sekunde: Diese Schleife schreibt dieselbe letzte Eingabe zweimal in die Datei und löscht den vorherigen Inhalt, solange Sie die Datei im Schreibmodus öffnen, ohne den Anfügemodus anzugeben.

korrigieren Sie die Funktion transactionlog zu:

void transactionlog(int taxi_number, int rank_id) 
{ 

    ofstream myfile("transactionlog.txt", ios::app); 

    myfile << "Joined the rank: "; 
    myfile << "\n\tTaxi number: " << taxi_number; 
    myfile << "\n\tRank id: " << rank_id; 

    myfile.close(); // to save the content 
} 
+0

Das war von, als ich etwas versuchte. Und danke für deine Hilfe. Sehr geschätzt – Josh

Verwandte Themen