2012-03-14 22 views
6

Bu benim kodudur. Bunu nasıl çözebilirim?C++ ofstream satır sonu

Teşekkürler!

DÜZENLEME: Dosyaları ve Linux'u derlemek için Windows kullanıyordum. Bu yüzden bu konuya koşuyordum. Dosya içeriğinin görülebilmesi için Linux tarafında cat output.dat kullanılması, Windows ve Linux hat kesintilerinin o anda farklı olduğunu ortaya çıkarırdı.

+2

[C++ Ofstream yeni bir satırın olası kopyası] (http://stackoverflow.com/questions/6352283/c-ofstream-a-new-line) – karlphillip

+2

[Inconceivable] (http://www.youtube.com/izlemek? h = 1-b7RmmMJeo). Emin misin * output.dat'ın sadece bir satırı var mı? Nasıl kontrol ediyorsun? Ayrıca hangi işletim sistemini ve derleyicisini kullanıyorsunuz? –

+0

Çıkış dosyasını kontrol etmek için windows ve notepad kullanıyorum. Tamamlayıcı örnek için –

cevap

2

std :: endl, zaten bir linebreak ekler, böylece dosyanızda linebreaks var. Dosyanızı bir LF sisteminde (Linux ya da UNIX benzeri) oluşturup bir CRLF sisteminde görüntülediğinizi varsayalım. Bu durumda, linebreak'iniz metin editöründe linebreak olarak gösterilmez. unix2dos senin arkadaşın.

+0

Çıkış dosyasını kontrol etmek için windows ve notepad kullanıyorum. –

+3

Unix altında oluşturup Windows altında okursa bile, çoğu editör doğru şekilde gösterecektir. Bu onun problemi ise, doğru çözüm farklı bir editör kullanmaktır; gerçek bir Windows programı CRLF çıkışı verir, ancak giriş için agnostik olmalıdır (tıpkı gerçek bir Windows programı '\' bir yol ayırıcı olarak çıkacak, ancak hem \ 'hem de'/'kabul edecektir). –

+2

@ Pirate43 Not Defteri işe yaramaz. Başka bir şey deneyin (bir konsol penceresinden '' filename' yazın). –

5

Sadece LF yerine CRLF'yi almak için "\r\n" ile std::endl1'i değiştirin.

+5

Buna karşı tavsiye ederim. Unix altında dosyalar yazıyorsanız ve Windows satır sonlarını istiyorsanız, çok fazla seçenek yoktur. (Birisi, çıktı için kullanılması gereken satır bitiş kuralını belirtmek için ek bir biçimlendirme seçeneği alan bir "filebuf" u uyguladıysa merak ediyorum.) –

+0

@JamesKanze: gerçekten, daha fazla katılıyorum, ama öyle görünüyor. burada olan şey. Filebuf ile çalışmak daha iyidir ve burada görmeyi çok isterim. –

+0

@JamesKanze Buradaki arkadaşımızın bu noktaya kadar gidebileceğinden kuşkulu olduğumdan şüpheliyim ve kodunun üzerinde çalışıp 'filebuf' denemesi için çok geniş bir uygulama alanına sahip olduğunu biliyoruz. –