Mam następujący kod, działa na Suse 10.1/G ++ 4.1.0, a nie zapisu pliku:ofstream nie wylewać
#include <fstream>
#include <iostream>
int main(){
std::ofstream file("file.out");
file << "Hello world";
}
Plik został prawidłowo utworzony i otwarty, ale jest pusty. Gdybym zmienić kod do:
#include <fstream>
#include <iostream>
int main(){
std::ofstream file("file.out");
file << "Hello world\n";
}
(dodać \n
do tekstu), to działa. Próbowałem także przepłukać strumień, ale to nie zadziałało.
Wszelkie sugestie?
Jak sprawdzić wynikowy plik? – log0
Program na Debianie/Sidie z g ++ 4.4.4 działa zgodnie z oczekiwaniami, a file.out zawiera ciąg (bez nowej linii). Spróbuj zaktualizować swój kompilator lub system operacyjny - oba są nieaktualne. – Dummy00001
Jak sprawdzasz, czy plik jest pusty?Zrób to na wynikowym pliku: wc i zobacz, jakie są dane wyjściowe. Powinno wynosić 0 2 11. 0 linii, 2 słowa, 11 znaków. Bez nowego wiersza wynik "Witaj świecie" pojawi się w wierszu polecenia, więc możesz go po prostu przegapić. –