Ich habe es versucht, aber es hat nicht funktioniert.
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
Ich habe es versucht, aber es hat nicht funktioniert.
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
Antworten:
#include <iostream>
std::cout << someString << "\n";
oder
printf("%s\n",someString.c_str());
Sie müssen auf den zugrunde liegenden Puffer zugreifen:
printf("%s\n", someString.c_str());
Oder besser nutzen cout << someString << endl;
(müssen Sie #include <iostream>
verwenden cout
)
Außerdem möchten Sie den std
Namespace möglicherweise mit using namespace std;
oder als Präfix sowohl string
als auch cout
mit importieren std::
.
Sie müssen #include<string>
verwenden string
und #include<iostream>
zu verwenden , cin
und cout
. (Ich habe es nicht verstanden, als ich die Antworten gelesen habe). Hier ist ein Code, der funktioniert:
#include<string>
#include<iostream>
using namespace std;
int main()
{
string name;
cin >> name;
string message("hi");
cout << name << message;
return 0;
}
Sie können "printf" nicht mit einem std :: string im Parameter aufrufen. Das "% s" ist für eine Zeichenfolge im C-Stil ausgelegt: char * oder char []. In C ++ können Sie Folgendes tun:
#include <iostream>
std::cout << YourString << std::endl;
Wenn Sie printf unbedingt verwenden möchten, können Sie die Methode "c_str ()" verwenden, die eine char * -Darstellung Ihrer Zeichenfolge liefert.
printf("%s\n",YourString.c_str())
Wenn Sie verwenden printf()
möchten, möchten Sie möglicherweise auch:
#include <stdio.h>
#include <cstdio>
(Wie man einen String in C ++
Wenn Sie eine Zeichenfolge verwenden, können Sie Ihre Nachricht am besten drucken:
#include <iostream>
#include <string>
using namespace std;
int main(){
string newInput;
getline(cin, newInput);
cout<<newInput;
return 0;
}
Dies kann einfach die Arbeit erledigen, anstatt die von Ihnen gewählte Methode auszuführen.
std
Namespace nicht importieren )