Oppure

Loading
14/08/09 7:49
Pierga
Non capisco perchè ho dovuto inserire 2 volte la stringa "cin.getline(rec.English,100);". Se non la metto per il primo ciclo non mi permette di inserire il dato, per i cicli successivi funziona normalmente ovvero mi chiede di inserire due volte il dato. Questo è il pezzo di codice che dà problemi:

#include <iostream>
#include <stdio.h>
#include <fstream>
#include <string>
#include <windows.h>
using namespace std;

int main ()
{ ...
    while(i=='1') {               //i e' una variabile char
        ofstream myfile;
        myfile.open ("Prova.txt", ios::app); 
        struct tiporec          
        {         
        char Italian[100]; 
        char English[100];      
        }rec;
        
        
        //Inserimento dei dati
        cout<<" Write in English:  ";
        cin.getline(rec.English,100); //<---- Ecco il problema
        cin.getline(rec.English,100);
        cout<<" Write in Italian:  ";
        cin.getline(rec.Italian,100);
        cout<<endl<<endl;
        
        //Stampa nel file i dati inseriti
        myfile << rec.English << " = " << rec.Italian << "\n";
        cout<<"Inserted line : "<<rec.English<<" = "<<rec.Italian
        <<endl<<endl<<endl;
        myfile.close();
        i='0';
        }
    
    ...


Qualcuno mi sa dare la spiegazione per favore? Grazie a chiunque risponda!

:hail:
aaa
14/08/09 9:06
ingMark
probabilmente il problema non è la struct.
Sicuro di non aver lasciato qualche \n da qualche parte?
di solito il tuo problema si verifica quando ci sono ancora dei caratteri non letti^^
aaa
14/08/09 9:20
Pierga
se con "\n" intendi i caratteri per andare a capo, no, non c'è nulla del genere prima. Il codice è proprio quello che è riportato sopra...
Cosa può essere?
aaa