我尝试了这个,但它没有用。
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
答案 0 :(得分:99)
#include <iostream>
std::cout << someString << "\n";
或
printf("%s\n",someString.c_str());
答案 1 :(得分:21)
您需要访问底层缓冲区:
printf("%s\n", someString.c_str());
或者更好地使用cout << someString << endl;
(您需要#include <iostream>
才能使用cout
)
此外,您可能希望使用std
导入using namespace std;
命名空间,或者使用string
将cout
和std::
添加前缀。
答案 2 :(得分:8)
您需要#include<string>
使用string
和#include<iostream>
来使用cin
和cout
。 (当我读到答案时,我没有得到它)。这里有一些有用的代码:
#include<string>
#include<iostream>
using namespace std;
int main()
{
string name;
cin >> name;
string message("hi");
cout << name << message;
return 0;
}
答案 3 :(得分:6)
您不能在参数中使用std :: string调用“printf”。 “%s”是为C风格的字符串设计的:char *或char []。 在C ++中你可以这样做:
#include <iostream>
std::cout << YourString << std::endl;
如果你绝对想要使用printf,你可以使用“c_str()”方法给出字符串的char *表示。
printf("%s\n",YourString.c_str())
答案 4 :(得分:2)
如果您想使用printf()
,您可能还需要:
#include <stdio.h>
答案 5 :(得分:-1)
使用字符串时,最好的打印方式是:
#include <iostream>
#include <string>
using namespace std;
int main(){
string newInput;
getline(cin, newInput);
cout<<newInput;
return 0;
}
这可以简单地完成工作,而不是执行您采用的方法。