c ++来自现有输入变量的新文件输入

时间:2017-01-13 17:10:49

标签: c++ file output

所以可能会问这个问题,但对于我的生活,我找不到任何地方。也许我没有正确地说它。如果是这样的道歉。

所以基本上,我正在写一个出租车号码和等级ID列表。当我输入时,它会正确写入文件,但如果有意义,它会重复相同的输入。

这是我的代码:

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

我希望文件中的第二个条目根据我输入的内容具有不同的日期。

对不起,如果这是长篇大论

1 个答案:

答案 0 :(得分:0)

首先为什么使用循环迭代两次将输入写入文件?

第二:此循环将相同的最后一个输入写入文件两次并清除以前的内容,只要您在写入模式下使用打开文件而不指定追加模式。

将函数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
}