web-dev-qa-db-fra.com

Comment imprimer une chaîne en C ++

J'ai essayé ça, mais ça n'a pas marché.

#include <string>
string someString("This is a string.");
printf("%s\n", someString);
57
node ninja
#include <iostream>
std::cout << someString << "\n";

ou

printf("%s\n",someString.c_str());
104
GWW

Vous devez accéder au tampon sous-jacent:

printf("%s\n", someString.c_str());

Ou mieux, utilisez cout << someString << endl; (vous devez #include <iostream> pour utiliser cout)

De plus, vous voudrez peut-être importer l'espace de noms std en utilisant using namespace std; ou préfixer à la fois string et cout avec std::.

21
ThiefMaster

Vous avez besoin de #include<string> pour utiliser string ET #include<iostream> pour utiliser cin et cout. (Je n'ai pas compris quand j'ai lu les réponses). Voici un code qui fonctionne:

#include<string>
#include<iostream>
using namespace std;

int main()
{
    string name;
    cin >> name;
    string message("hi");
    cout << name << message;
    return 0;
}
9
hexicle

Vous ne pouvez pas appeler "printf" avec un paramètre std :: string. Le "% s" est conçu pour la chaîne de style C: char * ou char []. En C++, vous pouvez faire comme ça:

#include <iostream>
std::cout << YourString << std::endl;

Si vous absolument voulez utiliser printf, vous pouvez utiliser la méthode "c_str ()" qui donne une représentation char * de votre chaîne.

printf("%s\n",YourString.c_str())
6
elmout

Si vous souhaitez utiliser printf(), vous souhaiterez peut-être également:

#include <stdio.h>
3
Perry Horwich