2016-04-04 16 views
1

Şu anda bu kod var ve tüm biçimlendirme doğru ... Çıkış metin dosyasında satırlar oluşturmak için bunu elde edemiyorum ... Bunu nasıl yaparım? Fonksiyonda ve ana() 'de bir döngü yapmayı denedim ama eğer bunu yaparsam işe yaramıyor, bu yüzden şu an kafam çok karışık. Eğer keser ve yeni bir dosya oluşturur yazdıktan sonra Dosyanızı eklemediğinizdenBir çıkış dosyasında satırları nasıl oluştururum?

#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

"Çalışmıyor gibi görünüyor", kullanışlı bir sorun açıklaması değil. –

+0

Tüm editörler, satır sonu olarak tek bir yeni satır karakterini işlemez. Not defteri gibi bir şey '\ r' ve yeni bir satır char bir satırbaşı görmek görmek için gidiyor. – Pemdas

cevap

1

main'da başlatılmamış değişkenleri kullanıyorsunuz. Zaten orada hiçbir amaca hizmet etmiyorlar. main gelen değişken bildirimleri çıkarın ve output koydu:

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; 
} 

diğer yanıtında belirttiği gibi ios::app bayrak eklemek isteyebilir.

2

, bayrak ekleme ekleyip olarak dosyayı açın.

flight.open("flightdata.dat", ios_base::app); 
İlgili konular