Hoe een string in C++ af te drukken

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 coutte gebruiken)

Daarnaast wilt u misschien de std-naamruimte importeren met behulp van using namespace std;of zowel stringals coutmet std::.


Antwoord 3, autoriteit 9%

Je hebt #include<string>nodig om stringte gebruiken EN #include<iostream>om cinte 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.

Other episodes