如何在 C++ 中打印字符串 [关闭]
Posted
技术标签:
【中文标题】如何在 C++ 中打印字符串 [关闭]【英文标题】:How to print a string in C++ [closed] 【发布时间】:2011-03-16 07:30:21 【问题描述】:我试过了,但是没用。
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
【问题讨论】:
“没用” - 为什么不向我们展示一个错误或者究竟是什么没用呢? (尽管在这种情况下很明显 - 但您可能还会遇到编译器错误,因为您没有导入std
命名空间)
复制:***.com/questions/3634766/…
【参考方案1】:
#include <iostream>
std::cout << someString << "\n";
或
printf("%s\n",someString.c_str());
【讨论】:
我总是更喜欢以前的版本。 效果更好:std::cout 为什么 C 这么烦人又复杂……顺便说一句,谢谢【参考方案2】:您需要访问底层缓冲区:
printf("%s\n", someString.c_str());
或者更好的使用cout << someString << endl;
(你需要#include <iostream>
才能使用cout
)
此外,您可能希望使用using namespace std;
导入std
命名空间,或在string
和cout
前加上std::
。
【讨论】:
【参考方案3】:您需要#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;
【讨论】:
【参考方案4】:您不能在参数中使用 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())
【讨论】:
【参考方案5】:如果您想使用printf()
,您可能还想:
#include <stdio.h>
【讨论】:
#include <cstdio>
(如何在C++中打印字符串)【参考方案6】:
使用字符串时,打印消息的最佳方式是:
#include <iostream>
#include <string>
using namespace std;
int main()
string newInput;
getline(cin, newInput);
cout<<newInput;
return 0;
这可以简单地完成工作,而不是按照您采用的方法。
【讨论】:
完全不正确。这里最大的缺陷是明显的安全漏洞(缓冲区溢出!),但还有其他缺陷。 是的,这是个严重的问题。谢谢以上是关于如何在 C++ 中打印字符串 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C++ 中使用 MPI 收集字符字符串并为每个进程打印它们?