definir - string c++
Error] no puede pasar objetos de tipo no copiable trivialmente ''std:: string{aka class std:: basic_string<char>}'' hasta ''...'' (1)
Bueno, las funciones C no están familiarizadas con las estructuras C ++. Debe hacer lo siguiente:
...
for(i = 0; i < 6; i++) {
printf("Input the number for %s =", qr_naziv[i].c_str());
scanf("%d", &br_el[i]);
}
...
Observe la llamada al método c_str()
en cada std::string qr_naziv[i]
, que devuelve un const char *
a una matriz de caracteres terminada en nulo con datos equivalentes a los almacenados en la cadena : una cadena tipo C .
Editar : Y, por supuesto, ya que estás trabajando con C ++, lo más apropiado es utilizar la inserción de los operadores de flujo <<
y la extracción >>
, como señaló @MatsPetersson. En tu caso, podrías hacer la siguiente modificación:
# include <iostream>
...
for(i = 0; i < 6; i++) {
std::cout << "Input the number for " << qr_naziv[i] << " =";
std::cin >> br_el[i];
}
...
#include <stdio.h>
#include <string>
main()
{
int br_el[6],i;
std::string qr_naziv[6];
qr_naziv[0]="Bath tub";
qr_naziv[1]="Sink";
qr_naziv[2]="Washing machine";
qr_naziv[3]="Toilet";
qr_naziv[4]="Kitchen sink";
qr_naziv[5]="Dish washer";
for(i=0;i<6;i++)
{
printf("Input the number for %s =",qr_naziv[i]);//here lies the problem
scanf("%d",&br_el[i]);
}
Este programa es mucho más largo, así que lo acorté ... La br_el[6]
es que ingresaré números para la matriz br_el[6]
, y quiero que me muestre para qué objeto estoy ingresando el número. Entonces, cuando trato de compilar, me da el error: "[Error] no puede pasar objetos de tipo no trivialmente copiable ''std :: string {aka class std :: basic_string}'' a ''...''" Intenté declarar string qr_naziv[6];
pero la cadena ni siquiera estaba en negrita, así que no funcionó, así que busqué en Google y descubrí otra forma ( std::string qr_naziv[6];
).