2016-04-04 14 views
1

我目前有這段代碼,所有的格式都是正確的......我似乎無法讓它在輸出文本文件中創建行......我該怎麼做?我試着在函數和main()中做一個for循環,但如果我這樣做似乎不起作用,所以我現在很困惑。如何在輸出文件中創建行?

#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

「它似乎不起作用」不是一個有用的問題描述。 –

+0

並非所有的編輯器都將一個新的行字符視爲換行符。類似記事本的東西就是希望看到一個回車'\ r'和一個新的行字符。 – Pemdas

回答

1

您正在使用main中的未初始化變量。無論如何,他們沒有任何目的。從main刪除變量聲明,並把它們放在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; 
} 

您可能需要添加ios::app標誌在對方的回答指出。

2

,只要你把它寫截斷,並創建一個新的文件,你是不是你的附加文件,添加附加標誌,並打開文件。

flight.open("flightdata.dat", ios_base::app); 
相關問題