2017-01-13 5 views
0

Так что этот вопрос мог быть задан, но для жизни меня я не могу найти нигде. Возможно, я не правильно его формулирую. Извините, если да.C++ новый вход в файл из существующих входных переменных

Так что, в основном, я пишу в файл список номеров такси и идентификаторов рангов. Когда я ввожу его, он записывает файл правильно, но он повторяет тот же ввод, если это имеет смысл.

Вот мой код для этого:

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; 

Тогда вот выход я получаю (переформатирован в текстовом документе)

труппой звания: номер такси: 434 Ранга ID : 23

труппы звания: номер такси: 434 ранга ID: 23

Я хочу, чтобы вторая запись в файле имела другую дату, основанную на том, что я вводил.

К сожалению, если это долго наматывается

+0

Для таких локализованных вопросы редко бывают дублирует. Подумайте еще раз, что ваша программа идет, может быть, шаг за шагом. Вы узнаете, почему * есть повторяющиеся записи, а затем вы можете выяснить, как добавить разные данные. – Rakete1111

+1

Я думаю, вам нужно сделать некоторые [отладки резиновой утки] (https://en.wikipedia.org/wiki/Rubber_duck_debugging) здесь. –

+0

Вы должны пройти список, который нужно создать в 'joinRank', и распечатать его записи. (Кажется, вы верите во второй идентификатор 'myfile <<" \ n \ tRank: "<< rank_id' должен произвести другой результат из первого' myfile << "\ n \ tRank id:" << rank_id'.) – molbdnilo

ответ

0

первый почему вы используете цикл, который перебирает дважды, чтобы написать вход в файл?

second: этот цикл записывает один и тот же последний вход дважды в файл и удаляет предыдущий контент, пока вы используете файл в режиме записи, не указав режим добавления.

исправить функцию transactionlog на:

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

Это было с того момента, когда я что-то пытался. И спасибо за вашу помощь. Очень признателен – Josh