Ik heb dit geprobeerd, maar het werkte niet.
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
Antwoord 1, autoriteit 100%
#include <iostream>
std::cout << someString << "\n";
of
printf("%s\n",someString.c_str());
Antwoord 2, autoriteit 16%
Je hebt toegang nodig tot de onderliggende buffer:
printf("%s\n", someString.c_str());
Of gebruik beter cout << someString << endl;
(je moet #include <iostream>
gebruiken om cout
te gebruiken)
Daarnaast wilt u misschien de std
-naamruimte importeren met behulp van using namespace std;
of zowel string
als cout
met std::
.
Antwoord 3, autoriteit 9%
Je hebt #include<string>
nodig om string
te gebruiken EN #include<iostream>
om cin
te gebruiken en cout
. (Ik begreep het niet toen ik de antwoorden las). Hier is wat code die werkt:
#include<string>
#include<iostream>
using namespace std;
int main()
{
string name;
cin >> name;
string message("hi");
cout << name << message;
return 0;
}
Antwoord 4, autoriteit 5%
Je kunt “printf” niet aanroepen met een std::string in parameter.
De “%s” is ontworpen voor C-stijl string: char* of char [].
In C++ kun je dat zo doen:
#include <iostream>
std::cout << YourString << std::endl;
Als je absoluutprintf wilt gebruiken, kun je de “c_str()”-methode gebruiken die een char*-representatie van je string geeft.
printf("%s\n",YourString.c_str())
Antwoord 5, autoriteit 2%
Als je printf()
wilt gebruiken, wil je misschien ook:
#include <stdio.h>
Antwoord 6
Als u tekenreeksen gebruikt, is de best mogelijke manier om uw bericht af te drukken:
#include <iostream>
#include <string>
using namespace std;
int main(){
string newInput;
getline(cin, newInput);
cout<<newInput;
return 0;
}
dit kan gewoon het werk doen in plaats van de methode te volgen die je hebt aangenomen.