WINFORM C++ 托管字符串>非托管字符串与 fstream 结合使用时会产生意外结果



右侧。所以我试着这样做:

    String^ ai = textBox4->Text;
char* towrite = (char*) Marshal::StringToHGlobalAnsi(ai ).ToPointer();
Marshal::FreeHGlobal(IntPtr(towrite));
string write = string(towrite);
ofstream filea;
filea.open("Logtoreadfrom.txt");
filea<< write; 
filea.close(); 

我试图将文本从textBox4复制到我创建的文件中。

我将托管字符串"ai"作为文本框中的文本,我通过StringToHGlobalAnsi命令的编组将其转换为char towrite,然后,我将非托管字符串write定义为char towrite

我定义filea,我创建filea,我写信给文件a,我关闭文件a.

当我打开filea时,我的结果通常由和我输入的文本无关的随机字母组成。

我想我做错了什么,有人能指出在哪里吗?

释放包含非托管字符串的内存,然后尝试使用它

String^ ai = textBox4->Text;
char* towrite = (char*) Marshal::StringToHGlobalAnsi(ai ).ToPointer();
string write = string(towrite);
Marshal::FreeHGlobal(IntPtr(towrite));
ofstream filea;
filea.open("Logtoreadfrom.txt");
filea<< write; 
filea.close(); 

相关内容

  • 没有找到相关文章

最新更新