在遇到大量输入输出的时候,我们知道printf & scanf的效率要大于cin & cout。 但在用到STL的时候,又难免用到string,于是有以下方法。 View Code
#include<iostream>#include<stdio.h>#include<string.h>usingnamespacestd;intmain(){ string a; a.resize(100);//需要预先分配空间scanf("%s", &a[0]);printf("%s\n", a.c_str());return0; }
printf输出string类型应如此操作! #include<iostream> #include<string> using namespace std; void main() { string aa="qqq"; printf("%s",aa.c_str()); //不推荐 //或者cout<
就是VC++.net里的 System::String类型 在C#里是 System.String 而在 c++.net 里,为表示引用,所以后面加了一个^。.net提供的所有引用类型,在vc++.net里,都是这样的。比如 Object^ obj = gcnew Object();你把代码改成这样 String^ savePath ="C:\\FileName.txt";StreamWriter^ sww = ...
string里有c_str()函数用于string转char数组。 使用方法为 string str; printf("%s",str.c_str());
用"printf"输出string类字符 在遇到大量输入输出的时候,我们知道printf & scanf的效率要大于cin & cout。 但在用到STL的时候,又难免用到string,于是有以下方法。 View Code
printf("%s/n",a); system("pause"); } 出错: [Warning] cannot pass objects of non-POD type `struct std::string' through `...'; call will abort at runtime printf只能输出C语言内置的数据,而string不是内置的,只是一个扩展的类,这样肯定是链接错误的。string不等于char*,&a代表的是这个字符串...
printf只能输出C语言内置的数据,而string不是内置的,只是一个扩展的类,这样肯定是链接错误的。 string不等于char*,&a代表的是这个字符串的存储地址,并不是指向字符串的首地址,aa 对象中包含一个指向"string"的指针, &aar得到的是这个对象的地址,不是"string"的地址。