Devo fare un programmino che mi legge da file una sequenza di nomi e devo inserire in due vettori o in due file (come ho fatto) i nomi maschili e poi i nomi femminili.
Ho usato Dev, ecco i codici:
MAIN
codice:#include <cstdlib> #include <iostream> #include <fstream> #include "prova.h" #include <string.h> using namespace std; int main(int argc, char *argv[]) { //vettore che conterrà i nomi vettore nomi; //riempimento vettore int r=0; //stringa in cui copierò le parole stringa parola; //variabile che userò per vedere se un nome è maschio o femmina int n; cout<<"Leggo il file...\n"; //leggo da file i nomi leggiFile(nomi,r); //cerco i nomi maschili e femminili all'interno cercaNomi(nomi, r, parola, n); system("PAUSE"); return EXIT_SUCCESS; }
PROVA.CPP
codice:#include <cstdlib> #include <iostream> #include <fstream> #include "prova.h" #include <string.h> using namespace std; void leggiFile(vettore nomi, int &r) { fstream f; f.open("Nomi.txt", ios::in); if(!f) { cout<<"Non trovo il file....\n"; } else { //metto i nomi nel file int i=0; while(f.eof()) { f>>nomi[i]; i++; r=i; } } f.close(); } void cercaNomi(vettore nomi, int r, stringa parola, int &n) { for (int i=0; i<r;i++) { strcpy(parola,nomi[i]); n=strlen(parola)-1; //sistemo le parole in due file diversi sistemaNomi1(parola, n); sistemaNomi2(parola, n); } } void sistemaNomi1(stringa parola, int n) { fstream f; f.open("Nomi Maschili.txt", ios::in); if(!f) { cout<<"Non trovo il file....\n"; } else { //metto i nomi nel file if(parola[n]=='o') f<<parola[n]; } f.close(); } void sistemaNomi2(stringa parola, int n) { fstream f; f.open("Nomi Femminili.txt", ios::in); if(!f) { cout<<"Non trovo il file....\n"; } else { //metto i nomi nel file if(parola[n]=='a') f<<parola[n]; } f.close(); }
prova.h
codice:#ifndef PROVA_H #define PROVA_H #define N 30 typedef char stringa[256]; typedef stringa vettore[N]; void leggiFile(vettore, int &); void cercaNomi(vettore, int, stringa, int &); void sistemaNomi1(stringa, int); void sistemaNomi2(stringa, int); #endif

Rispondi quotando