gpt4 book ai didi

c++ - WINFORM C++ Managed string->unmanaged string 在与 fstream 结合使用时产生意外结果

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:33:36 25 4
gpt4 key购买 nike

没错。所以我正在尝试这样做:

    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,然后我将非托管字符串写入定义为要写入的字符

我定义了filea,我创建文件a,我写信给文件 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();

关于c++ - WINFORM C++ Managed string->unmanaged string 在与 fstream 结合使用时产生意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8766135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com