PDA

Visualizza la versione completa : [C++] Problema String


Chaosweb
25-09-2014, 14:22
Salve a tutti, da poco che programmo in c++ e sto riscontrando questo problema:

Ho scritto un codice con una struttura per rappresentare una libreria, quando chiedo all'utente di inserire i libri contenenti all'interno della libreria, il programma salta come se legge due input insieme su una riga.
sicuramente il fatto dipende dal fatto che la stringa abbastanza lunga, riscontravo lo stesso problema in java risolto con una funzione per leggere una riga intera. ce un modo per ovviare al problema anche sul c? o la mia intuizione sbagliata e il problema tutt'altro? vi allego il codice


#include <iostream>
#include <string>
#include <cstdlib>
#include <istream>
#include <fstream>


using namespace std;




int main(int argc, char** argv) {

struct libro {
string autore;
string titolo;
int data_pubblicazione;
float prezzo;
};

struct libro libreria[3];
cout << "Prototipo Uso delle Strutture";
cout << endl;

for(int i = 0; i < 3; i++)
{

cout << "Inserire l'autore' del libro " << i ;
cin >> libreria[i].autore;

cout << "Inserire il titolo del libro " << i ;
cin >> libreria[i].titolo;

cout << "Inserire l'anno di pubblicazione del libro " << i ;
cin >> libreria[i].data_pubblicazione;

cout << "Inserire il costo del libro " << i;
cin >> libreria[i].prezzo;

cout << endl;
cout << "Id " << i << " aggiunto con successo!";
}

cout << endl;
cout << "Resoconto Libri inseriti";
for(int i = 0; i < 3; i++)
{
cout << "ID libro: " << i ;
cout << endl;
cout << "Autore: " << libreria[i].autore;
cout << "Titolo: " << libreria[i].titolo;
cout << "Data Pubblicazione " << libreria[i].data_pubblicazione;
cout << "Prezzo: " << libreria[i].prezzo;
cout << endl;
}
system("pause");


return 0;
}

Scara95
25-09-2014, 14:38
L'operatore >> legge fino al prossimo blank. Puoi usare std::getline (http://www.cplusplus.com/reference/string/string/getline/)

Chaosweb
25-09-2014, 15:01
L'operatore >> legge fino al prossimo blank. Puoi usare std::getline (http://www.cplusplus.com/reference/string/string/getline/)

Grazie mille!! tutti molto gentili e disponibili su questo forum.

Scara95
25-09-2014, 15:07
Grazie mille!! tutti molto gentili e disponibili su questo forum.

Di nulla :ciauz:

Loading