Я пробовал это, но это не сработало.
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
Я пробовал это, но это не сработало.
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
#include <iostream>
std::cout << someString << "\n";
или же
printf("%s\n",someString.c_str());
Вам нужно получить доступ к базовому буферу:
printf("%s\n", someString.c_str());
Или лучше использовать cout << someString << endl;
(вам нужно #include <iostream>
использовать cout
)
Кроме того, вы можете импортировать пространство имен std
с помощью using namespace std;
или префикса как string
, так и cout
с помощью std::
.
Вам нужно #include<string>
чтобы использовать string
AND #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;
}
Вы не можете вызвать "printf" с параметром std::string. "% S" предназначен для строки стиля C: char * или char []. В С++ вы можете сделать так:
#include <iostream>
std::cout << YourString << std::endl;
Если вы абсолютно хотите использовать printf, вы можете использовать метод "c_str()", который дает представление вашей строки char *.
printf("%s\n",YourString.c_str())
Если вы хотите использовать printf()
, вы можете также:
#include <stdio.h>
При использовании строки лучший способ напечатать ваше сообщение:
#include <iostream>
#include <string>
using namespace std;
int main(){
string newInput;
getline(cin, newInput);
cout<<newInput;
return 0;
}
это может просто сделать работу вместо того, чтобы использовать метод, который вы приняли.