Salve ragazzi, dovrei sviluppare una funzione che riceva in ingresso un vettore di record, costituito da due campi - codice fiscale e nome utente - e l'acquisizione di quest'ultimo termina nel momento in cui viene inserito un determinato carattere nel campo codice fiscale.
Ho ipotizzato che l'algoritmo potrebbe essere il seguente (il tutto senza puntatori, dato che ancora non abbiamo affrontato l'argomento):
Inizializzo un indice i ed acquisisco il primo valore del record, effettuo un controllo con un while sul campo del codice fiscale. Se l'elemento precedentemente inserito è diverso dal carattere speciale, allora procedo con l'inserimento del record, incrementando il relativo indice - utile per la dimensione del vettore, altrimenti l'inserimento termina.
Il ragionamento è giusto?
Inoltre sto impazzendo perché il mio dev mi dà errore anche se effettuo l'inserimento di un solo record. Ad esempio:
MAIN:
#include <iostream>
#include "libreria.h"
using namespace std;
int main(int argc, char** argv) {
Utente U;
dati_utente(U);
return 0;
}
FUNZIONI:
#include "libreria.h"
void leggi_utente(Utente & u){
cout << "Inserisci il nome: ";
cin.getline(u.Nome, 50);
cout << "Inserisci il codice fiscale:" ;
cin.getline(u.Codice,50);
}
LIBRERIA:
#include <iostream>
using namespace std;
const int N=50;
struct Utente {
char Codice[N];
char Nome[N];
};
void leggi_utente(Utente &);
Perché non va? Che errore logico commetto? Grazie mille.