Intenté esto, pero no funcionó.Cómo imprimir una cadena en C++
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
Intenté esto, pero no funcionó.Cómo imprimir una cadena en C++
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
#include <iostream>
cout << someString << "\n";
o
printf("%s\n",someString.c_str())
Yo siempre preferiría la versión anterior. –
funciona mejor: std :: cout << someString << "\ n"; – ChaosPredictor
necesita acceder a la memoria intermedia subyacente:
printf("%s\n", someString.c_str());
O mejor uso cout << someString << endl;
(es necesario #include <iostream>
utilizar cout
)
Adicionalmente es posible que desee importar el espacio de nombres std
usando using namespace std;
o prefijo ambos string
y cout
con std::
.
Si desea utilizar printf()
, es posible que desee también:
#include <stdio.h>
'#include
No se puede llamar "printf" con un std :: cadena en el parámetro. El "% s" está diseñado para una cadena de estilo C: char * o char []. En C++ se puede hacer así:
#include <iostream>
std::cout << YourString << std::endl;
Si absolutamente desea utilizar printf, puede utilizar el método "() c_str" que dan una representación char * de la cadena.
printf("%s\n",YourString.c_str())
necesita #include<string>
Y #include<iostream>
(yo no entiendo al leer las respuestas). Aquí hay un código que funciona:
#include<string>
#include<iostream>
using namespace std;
int main()
{
string name;
cin >> name;
string message("hi");
cout << name << message;
return 0;
}
"No funcionó" - ¿por qué no nos muestra un error o qué exactamente no funcionó? (Aunque es bastante obvio en ese caso, pero es posible que también tenga un error de compilación ya que no importa el espacio de nombres 'std') – ThiefMaster
Duplicado: http://stackoverflow.com/questions/3634766/c-printf-on -strings-prints-galimatías –