strings definir array c++ arrays string numbers

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]; ).