У меня есть следующий код:станд :: basic_fstream :: положит() не имеет никакого эффекта
#include <iostream>
#include <fstream>
int main(int argc, char *argv[]) {
if (argc != 2) {
std::cout << "Usage: basics <file>" << std::endl;
return 0;
}
std::basic_fstream<unsigned char> stream;
stream.open(argv[1], std::fstream::out);
stream.put('T');
stream.put('E');
stream.put('S');
stream.put('T');
stream.flush();
stream.close();
return 0;
}
Файл создаваемые но нет ничего внутри, когда я открыть его в редакторе. Мой компилятор: gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
.
Что в этом плохого?
Возможно, вам стоит убедиться, что написание действительно успешно. – chris
Интересно, что изменение параметра шаблона 'unsigned char' только на' char' (поскольку 'std :: fstream' typedefed) решает проблему. Я не уверен на 100%, почему; Мне нужно было бы вникать в кишечник STL, чтобы понять, что один из них. – inetknght
Стандартные потоки гарантируются только специализациями 'char' и' wchar_t'. – 0x499602D2