Я пытаюсь записать некоторые двойные значения в текстовый файл, создаваемый пользователем с помощью SaveFileDialog, но каждый раз, когда я создаю streamWriterVariable-> Write (someDoubleVariable), вместо этого я вижу какой-то странный символ ASCII в текстовом файле, где должен быть двойной (нота, символ, символ авторского права и т. д.). Я открываю файл с помощью блокнота, если он имеет какое-либо значение. Основной контур моего кода:Проблема с записью StreamWriter удваивается в .txt-файл (C++)
SaveFileDialog^ saveFileDialog1 = gcnew SaveFileDialog;
saveFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
saveFileDialog1->Title = "Save File Here";
saveFileDialog1->RestoreDirectory = true;
if (saveFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
FileInfo ^fleTest = gcnew FileInfo(saveFileDialog1->FileName);
StreamWriter ^sWriter = fleTest->CreateText();
sWriter->AutoFlush = true;
double test = 5.635; //Some arbitrary double I made up for test purposes
sWriter->Write(test);
sWriter->Flush();
sWriter->Close();
}
Спасибо за вашу помощь!
Таким образом, явно не удалось решить проблему, но она предлагает своеобразное решение: когда я кодирую явно и записываю только writeLine (double), он работает. Если я пишу (double), за которым следует любая запись («строка»), она испортится, в дополнение к любой записи (строка), за которой следует запись (double). Излишне говорить, что ваш совет привел меня к решению, так что спасибо! Для дальнейшего использования у меня было две ошибки при попытке вашего объявления: один, он утверждал, что ANSI не был типом кодировщика, а два, он сказал, что он не ожидал значения bool для второго пятна в параметре. Спасибо хоть! – Nate
К сожалению, я имел в виду System :: Text :: Encoding :: ASCII. Вы пытались открыть полученный файл с помощью расширенного текстового редактора, такого как Notepad ++? Кроме того, файл всегда создается с нуля, т. Е. Удаляется перед любой новой записью? – Pragmateek