Когда я использую setw()
с ofstream
, запись в файл выполняется неправильно.Он пропускает много строк вывода, а в Notepad ++ выходной файл показывает множество пустых значений.Но когда я пробую его с "\t"
, он отлично работает.
Не могли бы вы объяснить, почему?
#include<fstream>
#include<iomanip>
using namespace std;
int main(){
ofstream myfile;
myfile.open ("test.txt");
for(int i=0;i<300;i++){
myfile <<"\n"<<setw(15)<<0<<setw(15)<<0<<setw(15)<<10000<<setw(15)<<6000;
//myfile <<"\n\t"<<0<<"\t"<<0<<"\t"<<10000<<"\t"<<6000;
}
return 0;
}
Редактировать:
Я немного больше протестировал и выяснилчто проблема специфична для следующей конфигурации.Я использую ubuntu guest на win7 с использованием virtualbox
, и моя программа пыталась записать файл на диск операционной системы с помощью virtualbox
общая папка, смонтированная на ubuntu .
Когда я пытался запустить программу внутри ubuntu , она работала нормально.Кроме того, я попытался сделать то же самое на моем персональном компьютере, на котором также есть хост win7 и ubuntu guest.Я попробовал ту же программу на смонтированном диске от win7 до ubuntu , и она работала нормально.
Мне интересно, было ли это из-за настроек на моем рабочем компьютере.Во всяком случае, сейчас это не критично.Но больше идей приветствуются.