Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C++] Problema String

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    12

    [C++] Problema String

    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

    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;
    }

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    L'operatore >> legge fino al prossimo blank. Puoi usare std::getline
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    12
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    L'operatore >> legge fino al prossimo blank. Puoi usare std::getline
    Grazie mille!! tutti molto gentili e disponibili su questo forum.

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Quote Originariamente inviata da Chaosweb Visualizza il messaggio
    Grazie mille!! tutti molto gentili e disponibili su questo forum.
    Di nulla
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.