Salve sto scrivendo un codice che calcola un codice fiscale, il mio problema è che quando devo prendere il Codice del comune (quattro caratteri) da un file csv che è scritto in questo modo
non so come scrivere che una volta trovato la riga della città prenda in input il codice che si trova dopo il ; ho provato in tutti i modi che conosco e anche cercato online ma non capisco o non funziona.
Questo è il codice
ABBADIA CERRETO;A004
non so come scrivere che una volta trovato la riga della città prenda in input il codice che si trova dopo il ; ho provato in tutti i modi che conosco e anche cercato online ma non capisco o non funziona.
Questo è il codice
C++:
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <algorithm>
using namespace std;
string file_content();
int main()
{
char a_mesi[12] = {'A', 'B', 'C', 'D', 'E', 'H', 'L', 'M', 'P', 'R', 'S', 'T'};
char vocale_cognome,vocale_nome;
int len_cognome, len_nome,mese;
string nome,cognome,anno,result,data, giorno,codice_comune,provincia,citta;
string database = file_content();
bool femmina = false;
int len_database = database.size();
cout << "inserisci il tuo nome ";
cin >> nome;
cout << "inserisci il tuo cognome ";
cin >> cognome;
cout << "inserisci il giorno in cui sei nato ";
cin >> giorno;
cout << "inserisci il mese in cui sei nato ";
cin >> mese;
mese = mese-1;
cout << "inserisci l'anno in cui sei nato ";
cin >> anno;
cout << "In che provincia sei nato? ";
cin >> provincia;
cout << "in che città sei nato? ";
cin >> citta;
int verifica;
cout << "Se sei maschio digita 0 altrimenti digita 1 ";
cin >> verifica;
if (verifica == 1)
{
femmina = true;
}
len_nome = nome.size();
len_cognome = cognome.size();
for (int j = 0; j < len_cognome; j++)
{
if(cognome[j] == 'a' || cognome[j] == 'e' || cognome[j] == 'i' || cognome[j] == 'o' || cognome[j] == 'u' || cognome[j] == 'A' || cognome[j] == 'E' || cognome[j] == 'I' || cognome[j] == 'O' || cognome[j] == 'U')
{
vocale_cognome = cognome[j];
cognome.erase(j, 1);
len_cognome--;
j--;
}
}
for (int j = 0; j < len_nome; j++)
{
if (nome[j] == 'a' || nome[j] == 'e' || nome[j] == 'i' || nome[j] == 'o' || nome[j] == 'u' || nome[j] == 'A' || nome[j] == 'E' || nome[j] == 'I' || nome[j] == 'O' || nome[j] == 'U')
{
vocale_nome = nome[j];
nome.erase(j, 1);
len_nome--;
j--;
}
}
anno.erase(0, 2);
int app = stoi(giorno);
if (femmina == true)
{
app = app + 40;
data = app;
}
else {
data = giorno;
}
}
result = cognome + vocale_cognome+nome+anno+a_mesi[mese]+data;
cout << result;
return 0;
}
string file_content()
{
// filestream variables
fstream file;
string filename;
// we declare filename which corresponds to the file we want to open
filename = "lista-codici.txt";
//open the file
file.open(filename.c_str());
// create a stringstream
stringstream buffer;
//passes the file buffer to the stringstream
buffer << file.rdbuf();
//reading the file
return buffer.str();
}