我試過了,但沒有奏效。如何在C++中打印一個字符串
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
我試過了,但沒有奏效。如何在C++中打印一個字符串
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
#include <iostream>
cout << someString << "\n";
或
printf("%s\n",someString.c_str())
我總是喜歡前版本。 – 2011-03-16 07:34:58
它更好用:std :: cout << someString <<「\ n」; – ChaosPredictor 2017-06-26 15:41:56
您需要訪問底層緩衝區:
printf("%s\n", someString.c_str());
或者更好地利用cout << someString << endl;
(你需要#include <iostream>
使用cout
)
此外,您可能要導入使用using namespace std;
的std
命名空間或者前綴string
和cout
與std::
。
如果您想使用printf()
,你可能也想:
#include <stdio.h>
'#include
不能稱之爲 「printf」 上有一個std ::字符串參數。 「%s」設計用於C風格的字符串:char *或char []。 在C++中,你可以做這樣的:
#include <iostream>
std::cout << YourString << std::endl;
如果絕對想用printf,你可以使用該給你的字符串的一個char *表示的「c_str()」方法。
printf("%s\n",YourString.c_str())
你需要#include<string>
和#include<iostream>
(我沒有得到它,當我讀到的答案)。這裏有一些代碼可以工作:
#include<string>
#include<iostream>
using namespace std;
int main()
{
string name;
cin >> name;
string message("hi");
cout << name << message;
return 0;
}
「沒有工作」 - 爲什麼不告訴我們一個錯誤或什麼不工作? (儘管在這種情況下它很明顯 - 但是你也可能有編譯器錯誤,因爲你不會導入'std'命名空間) – ThiefMaster 2011-03-16 07:32:46
重複:http://stackoverflow.com/questions/3634766/c-printf-on -strings-prints-gibberish – 2011-03-16 13:58:45