我有一个程序基本上可以写出这样的字符
wchar_t c[5] = {static_cast<wchar_t>(x1), static_cast<wchar_t>(x2), static_cast<wchar_t>(x3), static_cast<wchar_t>(x4)};
fileWriter->Write(msclr::interop::marshal_as<String^>(c));
然后让他们输入回程序
String^ fileContent = fileReader->ReadToEnd();
我的问题是,当 x1/x2/x3/x4 有一个大数的整数值时(我不能确定是哪个,但我认为当它超过 50,000 时它就在某个地方),然后它会读取具有值的字符65533。
我弄乱了 StreamReader 和 StreamWriter 编码值,但我一开始将它们设置为 System::Text::Encoding::Unicode 并且不明白为什么这不起作用......
我什至不确定它是错误地写入符号还是读取它......当我打开它创建的文本文件时,它们对于我的电脑来说都是不可读的字符......我真的很茫然。有谁知道我在这里做错了什么?