C++ 如何在C++;

C++ 如何在C++;,c++,string,printf,C++,String,Printf,我试过了,但没用 #include <string> string someString("This is a string."); printf("%s\n", someString); #包括 字符串someString(“这是一个字符串”); printf(“%s\n”,someString); 您需要访问底层缓冲区: printf("%s\n", someString.c_str()); 或者最好使用cout如果您想使用printf(),您可能还想: #include &

我试过了,但没用

#include <string>
string someString("This is a string.");
printf("%s\n", someString);
#包括
字符串someString(“这是一个字符串”);
printf(“%s\n”,someString);

您需要访问底层缓冲区:

printf("%s\n", someString.c_str());

或者最好使用
cout如果您想使用
printf()
,您可能还想:

#include <stdio.h>
#包括
不能在参数中使用std::string调用“printf”。 “%s”是为C样式字符串设计的:char*或char[]。 在C++中你可以这样做:< /P>
#include <iostream>
std::cout << YourString << std::endl;
您需要
#include
来使用
字符串
#include
来使用
cin
cout
。(我读答案的时候没有明白)。下面是一些有效的代码:

#include<string>
#include<iostream>
using namespace std;

int main()
{
    string name;
    cin >> name;
    string message("hi");
    cout << name << message;
    return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
字符串名;
cin>>名称;
字符串消息(“hi”);

cout使用字符串时,打印消息的最佳方式是:

#include <iostream>
#include <string>
using namespace std;

int main(){
  string newInput;
  getline(cin, newInput);
  cout<<newInput;
  return 0;
}
#包括
#包括
使用名称空间std;
int main(){
字符串输入;
getline(cin,newInput);

cout“not work”-为什么不向我们显示一个错误或者什么东西不起作用?(尽管在这种情况下这很明显-但是您可能也有一个编译器错误,因为您没有导入
std
命名空间)重复:我总是更喜欢前一个版本。它工作得更好:std::cout为什么C如此烦人和复杂…顺便说一句,
#include
(如何在C++中打印字符串)根本不是真的。这里最大的缺陷是明显的安全漏洞(缓冲区溢出!),但还有其他漏洞。是的,这是一个严重的问题。Thanx
printf("%s\n",YourString.c_str())
#include<string>
#include<iostream>
using namespace std;

int main()
{
    string name;
    cin >> name;
    string message("hi");
    cout << name << message;
    return 0;
}
#include <iostream>
#include <string>
using namespace std;

int main(){
  string newInput;
  getline(cin, newInput);
  cout<<newInput;
  return 0;
}