如何在C ++中打印字符串

时间:2011-03-16 07:30:22

标签: c++ string printf

我尝试了这个,但它没有用。

#include <string>
string someString("This is a string.");
printf("%s\n", someString);

6 个答案:

答案 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;命名空间,或者使用stringcoutstd::添加前缀。

答案 2 :(得分:8)

您需要#include<string>使用string#include<iostream>来使用cincout。 (当我读到答案时,我没有得到它)​​。这里有一些有用的代码:

#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;
}


这可以简单地完成工作,而不是执行您采用的方法。