Hola gente. Se me ha presentado el error de los getline.. He estado buscando en linea cual ha de ser el posible error pero nada. Bueno, este es el error que me tira:
CitarError C2664: 'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::getline(_Elem *,std::streamsize,_Elem)'
Me marca el punto en rojo del "cin
.getline();"
El comando de
getline(cin, inventario[cont].localidad); no me da error, pero como que no lo lee dado que se lo salta o no pide dato.
Aca el codigo:
Citar
void agregar(vehiculo inventario[], int &cont){
cout << "Digite la placa del vehiculo: ";
cin >> inventario[cont].placa;
cout << " " << endl;
cout << "Digite la localiacion general del vehiculo: ";
//getline(cin, inventario[cont].localidad);
cin.getline(inventario[cont].localidad,100);
//cin >> inventario[cont].localidad;
cout << " " << endl;
Gracias de antemano.. ;-);-) ;D
Y ".localidad" es...? Un string?
Si es un string, usa la primera forma.
Si es un char*, usa la segunda.
Si dices que la primera forma no te la lee, es porque has puesto:
cin >> inventario[cont].placa;
antes. "cin<<" lee, pero deja en el buffer de entrada el salto de linea. Así que getline lee ese salto de linea.
Antes del getline(cin, string), pon
cin.ignore();
para sacar del buffer el salto de linea.