String^ (S大写,后有^符)到底是什么类型,1:如何用printf 输出的。。。重赏。2:如何转换为string(小写)

附加信息:重赏
还行环境:VS2008 C++.net
String^ savePath ="C:\\FileName.txt"; //Set The Save File Path
StreamWriter^ sww = File::CreateText(savePath);
char eachRes[50]= "IBM 2008 年 12 月 0.0971351415 9% 变化";
sww->WriteLine(eachRes);
就这样啦, 运行后 文件无东西的。。。。具体问题。。。

就是VC++.net里的 System::String类型

在C#里是 System.String

而在 c++.net 里,为表示引用,所以后面加了一个^。

.net提供的所有引用类型,在vc++.net里,
都是这样的。

比如 Object^ obj = gcnew Object();

你把代码改成这样

String^ savePath ="C:\\FileName.txt";
StreamWriter^ sww = File::CreateText(savePath);
String^ text = "IBM 2008 年 12 月 0.0971351415 9% 变化";
sww->WriteLine(text);
sww->Close();

因为sww->WriteLine(eachRes);
你这里eachRes是一个char*,

而WriteLine没有直接接受参数为char*的重载,会转化为bool类型,所以只会在文件中输出一个True,不会输出字符串。因为此char*不为空。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-25
这个是C++/CLI(嘛,我不太熟...),不是C++。两者是不同的语言,不过C++基本可以算是C++/CLI的子集。。。
^表示句柄,指向托管资源,可以被垃圾收集器回收而不需要手动释放。
String应该指的是.NET库里面的System::String,而string应该是C++标准库里的std::string。
具体可以参考这里:
http://www.codeguru.com/forum/showthread.php?t=372298
得到指针以后就可以(类似通常的C风格字符串)用printf输出了,也可以用来构造std::string。

参考资料:原创 + Google

第2个回答  2010-08-25
应该不是VS2008里面的类型,在VS2008里试了,没发现有这个样子的。

需要看完整的代码,才能确定是不是类型。
第3个回答  2018-09-07
你可以使用 Console::WriteLine(String^); 这个和printf一个效果,记得要加上#using <System.dll>及其相关引用哦
第4个回答  2010-08-25
请写出完整的程序。
相似回答