StreamWriter在编写.txt文件(c++)时遇到麻烦



我试图写一些双值用户通过SaveFileDialog创建的文本文件,但每次我做一个streamWriterVariable->写(someDoubleVariable),我反而看到某种奇怪的ASCII字符在文本文件中,双应该是(音符,|,版权符号等)。我在用记事本打开文件如果有什么重要的。我的代码的基本轮廓:

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();
}

谢谢你的帮助!

您是否尝试过显式设置编码?

StreamWriter^ sWriter = gcnew StreamWriter(saveFileDialog1->FileName, false, System::Text::Encoding::ASCII);

您提供的代码完全按照您的要求完成了任务,即以内部计算机格式向文件写入双精度对象。您最有可能希望它写出双精度数的文本表示形式。

换句话说,您应该尝试sWriter->Write(test.ToString())或其变体,以获得double的文本版本。这也适用于bool和大多数其他变量表示。

相关内容

  • 没有找到相关文章

最新更新