Perchè continua a darmi errore?

di il
23 risposte

Perchè continua a darmi errore?

Salve a tutti ragazzi, da neofita del linguaggio C mi sono imbattuto in un nuovo problema :S...

Il programma sembra essere corretto ma mi restituisce il seguente errore:
"expected primary-expression before '.' token"
alle righe 17,18,19,29,32, ovvero quando utlizzo il comando strcpy...che errore commetto?

Vi posto il codice:



#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define NCHAR 20

// Definizione della struttura
typedef struct {
                    char nome[NCHAR];
                    char cognome[NCHAR];
                    char telefono[NCHAR];
               } account;
               

void InsContatto (char nom[], char cogn[], char tel[])
{ //OPEN InsContatto
     strcpy (account.nome,nom);
     strcpy (account.cognome,cogn);
     strcpy (account.telefono,tel);
     return;
} //CLOSED InsContatto

void Visualizza (char nom[], char cogn[])
{ //OPEN Visualizza
     int i;
     int num_account=0;
     for (i=0; i<=num_account; i++)
     { //OPEN for
         if ((strcmp (nom,account.nome)==0) && (strcmp (cogn,account.cognome)==0))
         { //OPEN if
            printf ("Il contatto scelto e': \n");
            printf ("\n%s %s\n", account.nome, account.cognome);
            printf ("%s", account.telefono);
            printf ("\n\n");
            return;
         } //CLOSED if
         else
         { //OPEN else
            printf ("Il contatto non esiste");
            printf ("\n\n");
            return;
         } //CLOSED else
     } //CLOSED for
} //CLOSED Visualizza
// Dichiarazione delle funzioni



int main()
{ 
     int scelta, i; /* per inserire la scelta del menù */
     char n[NCHAR]; /* per inserire il nome */
     char m[NCHAR]; /* per inserire il cognome */
     char t[NCHAR]; /* per inserire il numero di telefono */
     char ch = '\0';
     for (;scelta!= 0;)
     { //OPEN for
          printf ("Programma per la gestione della rubrica di uno smartphone\n");
          printf ("\n1 - Inserisci Contatto\n");
          printf ("\n2 - Visualizza Contatto\n");
          printf ("\n0 - Esci dal programma\n");
          printf ("\nDigita: ");
          scanf ("%d", &scelta);
          switch (scelta)
          {
                 case 0: // Exit
                           printf ("\nGrazie per la scelta\n\n");
                           break;
                 case 1: // Inserisci contatto
                           printf ("Nome: ");
                           scanf("%s", n);
                           printf ("Cognome: ");
                           scanf ("%s", m);
                           printf ("Telefono: ");
                           scanf ("%s", t);
                           printf ("\n");
                           InsContatto(n,m,t);
                           break;
                 case 2: // Visualizza
                           printf ("\nNome: ");
                           scanf ("%s", n);
                           printf ("Cognome: ");
                           scanf ("%s", m);
                           Visualizza (n,m);
                           break;
          } //CLOSED switch
    } //CLOSED for
    system ("Pause");
    return 0;
} //CLOSED main
Il programma dovrebbe simulare la rbrica di uno smartphone, grazie a chiunque si interesserà.

Always

23 Risposte

  • Re: Perchè continua a darmi errore?

    Non hai una varibile col nome account. account è lo struct ma non hai definito una varibile derivata dallo struct. quindi ti basta.
    
    account questoAccount;
    
    e utiolizzi questAccount nelle funzioni di strcpy.
  • Re: Perchè continua a darmi errore?

    Skynet ancora grazie mille, il programma funziona ed è perfetto ...
    Volevo chiederti un'ultima cosa, qualora volessi inserire un algoritmo di ordinamento che mi ordina la rubrica e una funzione di visualizzazione che non mi richiede nome e cognome ma che stampa a video tutti i contatti come dovrei modificare il codice?E' necessario che le due funzioni siano collegate tra loro?

    Ancora grazie per il supporto datomi.
  • Re: Perchè continua a darmi errore?

    Per la funzione Visualizza non c'è bisogno del if e del else perché stai cercando di stamparli tutti. Quindi lascia solo le righe dentro il blocco if.
    Le due funzioni non devono essere collegati tra loro perche credo che hai definito la tua rubrica come globale, quindi accessibile a tutte le funzioni.
  • Re: Perchè continua a darmi errore?

    Grazie skynet, ho modificato opportunamente il codice:
    
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    
    #define MAXDIMSTRINGHE 200
    
    
    
    typedef
    struct{
     char nome[MAXDIMSTRINGHE];
     char cognome[MAXDIMSTRINGHE];
     char telefono[MAXDIMSTRINGHE];
    } account ;
    account anonimo;
    
    typedef
    struct {
           int numero_contatti;
           } numcont;
           numcont numero;
           
    
    void inserisci (char n[MAXDIMSTRINGHE],char m[MAXDIMSTRINGHE],char t[MAXDIMSTRINGHE]){
         strcpy (anonimo.nome,n);
         strcpy (anonimo.cognome,m);
         strcpy (anonimo.telefono,t);
         return;
    }
    void visualizza (){
         printf("\n Nome: %s Cognome: %s Numero: %s\n ",anonimo.nome,anonimo.cognome,anonimo.telefono);
      
         return;
    }
    
    
    int main() {
    
    
    
    //dichiarazione di variabili
    
    int i,numero;
    char nom[MAXDIMSTRINGHE],cogn[MAXDIMSTRINGHE],tel[MAXDIMSTRINGHE];
    
    printf("Quanti contatti vuoi inserire?");
    scanf("%d", &numero);
    
    for(i=0;i<numero;i++){
    
    printf("Inserire il nome: ");
    scanf("%s", &nom);
    
    printf("Inserire il cognome:");
    scanf("%s", &cogn);
    
    printf("Inserire il telefono:");
    scanf("%s", &tel);
    
    inserisci (nom,cogn,tel);
    }
    
    for(i=0;i<numero;i++){
                          visualizza();
                          }
    
    
    system("PAUSE");
    return 0;
    }
    
    
    ma come faccio a definire una funzione che mi legge le intere stringhe e le restituisce ordinate alfabeticamente, per esempio per cognome?

    Grazie ancora
  • Re: Perchè continua a darmi errore?

    Dovresti utilizzare un algoritmo di ordinamento tipo quicksort o bubblesort. non ti posso scrivere io il codice perche così non credo che si studia ma un esempio di pseudocodice lo puoi trovare su wikipedia.

    http://it.wikipedia.org/wiki/Bubble_sor
    http://it.wikipedia.org/wiki/Quicksor

    Uttilizzando il bubble sort per esempio non rincorri a funzioni recursive cosa che invece fa il quick sort.

    pseudocodice bubble sort
    
    procedure BubbleSort( A : lista di elementi da ordinare)
      alto ? lenght(array)
      while (alto > 0) do
        for i ? 0 to alto - 1 do
          if (A[i] > A[i + 1]) then       //scambiare il '>' con '<' per ottenere 
            swap ( A[i], A[i+1] )                  // un ordinamento decrescente
        alto ? alto - 1
    
  • Re: Perchè continua a darmi errore?

    Non voglio assolutamente che tu mi scriva il codice volevo mi suggerissi un algoritmo, io conosco sia bubblesort che selectsort ma credevo funzionassero per ordinare i singoli caratteri di un array, posso ordinare anche una stringa interna?L'intento è quello di confrontare due stringhe e farle restituire in ordine alfabetico, possono andare bene bubblesort e slectsort?Devo sempre confrontarle carattere per carattere?

    Grazie ancora skynet, che pazienza che hai!
  • Re: Perchè continua a darmi errore?

    Figurati io mi diverto invece.
    
    guarda quà:
    if (A[i] > A[i + 1]) then       //scambiare il '>' con '<' per ottenere
            swap ( A[i], A[i+1] )                  // un ordinamento decrescente
    come lo scriveresti nel caso della tua struttura?
    
    if(strcmp(questoAccount[i].cognome,questoAccount[i+1].cognome) > 0)
    {
    scambia tutti i dati dei due indici. come fai a scambiare.
    crea un account temp che ti serve per i dati temporanei.
    account temp;
    strcpy(temp.nome,questoAccount[i].nome);
    strcpy(questoAccount[i].nome,questoAccount[i+1].nome);
    strcpy(questoAccount[i+1].nome,temp.nome);
    prossegui così per gli atri campi.
    }
    
  • Re: Perchè continua a darmi errore?

    Ho provato skynet ma sicuramente da neofita ho sbagliato qualcosa :S
    
    void BubbleSort (char a[MAXDIMSTRINGHE],int n){
    int i;
    account temp;
    for(i=0;i<n;i++){
    if(strcmp(a[i],a[i+1]) > 0){
    strcpy(temp,a[i+1]);
    strcpy(a[i+1],a[i]);
    strcpy(a[i],temp);
    }
    }
    
    mi restituisce vari errori, come che non può convertire una char in un cost char e aspetta un punto e virgola prima del main ovvero dopo l'ultima parentesi graffa.
    Quando richiamo la funzione nel programma devo farlo prima di richiamare la funzione inserisci?

    Ps. sei un programmatore o è solo passione?
  • Re: Perchè continua a darmi errore?

    Allora tu devi ordinare tutto l'array di strutture. Così stai cercando di ordinare i caratteri dentro un possibile nome (o cognome). Prendi il mio esempio e applicalo al tuo array di strutture di tipo account. Dovresti avere un array del tipo
    
    account anonimo[100];
    
    solo così ottieni uno spazio di 100 strutture di tipo account. Sostituisci questoAccount con anonimo nel mio post precedente e così hai un pezzo dell'algoritmo di bubble_sort fatto.

    p.s.: Per passione da 15 anni. Posso dire che sono diventato un mezzo programmatore solo dopo 10 anni di studio. Adesso faccio dei programmi molto complessi ma fine a se stessi e ad un gruppo ristretto di clientela.
  • Re: Perchè continua a darmi errore?

    Skynet mi dispiace continuare a postare codice e chiedere aiuto, per quanto possa divertirti il c credo anche tu abbia un limite, purtroppo continua a darmi errore, ho inserito il bubble sort all'interno della funzione inserisci ma mi restituisce il seguente errore:
    "no match for 'operator[]' in 'anonimo' "
    "no match for 'operator[]' in 'anonimo[(i + 1)]'"
    "expected declaration before '}' token"
    
    void inserisci (char n[MAXDIMSTRINGHE],char m[MAXDIMSTRINGHE],char t[MAXDIMSTRINGHE]){
         strcpy (anonimo.nome,n);
         strcpy (anonimo.cognome,m);
         strcpy (anonimo.telefono,t);
         int i;
         if(strcmp(anonimo[i].nome,anonimo[i+1].nome)){
    for (i=0;i<n;i++){                                                          
    account temp;
    strcpy(temp.nome,anonimo[i].nome);
    strcpy(anonimo[i].nome,anonimo[i+1].nome);
    strcpy(anonimo[i+1].nome,temp.nome);
         return;
         }
         }
         }
    


    La funzione bubblesort devo crearla a parte o posso inserirla nella funzione inserisci?Se la creo a parte in che parte del programma la richiamo?

    Grazie ancora skynet
  • Re: Perchè continua a darmi errore?

    Forse no ci siamo capiti. Ecco il programma completo. Vediamo un pò dov'è sto limite.
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define NCHAR 20
    
    // Definizione della struttura
    typedef struct {
    	char nome[NCHAR];
    	char cognome[NCHAR];
    	char telefono[NCHAR];
    } account;
    
    
    account anonimo[100];
    int num_account = 0;
    
    void InsContatto (char nom[], char cogn[], char tel[])
    { //OPEN InsContatto
    	strcpy (anonimo[num_account].nome,nom);
    	strcpy (anonimo[num_account].cognome,cogn);
    	strcpy (anonimo[num_account].telefono,tel);
    	num_account++;
    	return;
    } //CLOSED InsContatto
    
    void Visualizza (char nom[], char cogn[])
    { //OPEN Visualizza
    	int i = 0;
    	bool flag = false;
    	for (i=0; i < num_account && !flag; i++)
    	{ //OPEN for
    		if (!(strcmp(nom,anonimo[i].nome)) && (!strcmp(cogn,anonimo[i].cognome)))
    		{ //OPEN if
    			printf ("Il contatto scelto e': \n");
    			printf ("\n%s %s\n", anonimo[i].nome, anonimo[i].cognome);
    			printf ("%s", anonimo[i].telefono);
    			printf ("\n\n");
    			flag = true;
    		} //CLOSED if
    	} //CLOSED for
    	if(!flag)
    	{ //OPEN else
    		printf ("Il contatto non esiste");
    		printf ("\n\n");
    		} //CLOSED else
    } //CLOSED Visualizza
    // Dichiarazione delle funzioni
    
    void VisualizzaTutti(void)
    {
    	int i = 0;
    	for(i = 0; i < num_account; i++)
    	{
    		printf("Contatto %d:\tNome:\t%s\tCognome:\t%s\tTelefono:\t%s\n",i+i,anonimo[i].nome,anonimo[i].cognome,anonimo[i].telefono);
    	}
    }
    
    void bubbleSort(account *anonimo)
    {
    	int alto = num_account - 1;
    	int i = 0;
    
    	while(alto > 0)
    	{
    		for(i = 0; i < alto; i++)
    		{
    			if(strcmp(anonimo[i].cognome,anonimo[i+1].cognome) > 0)
    			{
    				account temp;
    				strcpy(temp.cognome,anonimo[i].cognome);
    				strcpy(temp.nome,anonimo[i].nome);
    				strcpy(temp.telefono,anonimo[i].telefono);
    
    				strcpy(anonimo[i].cognome,anonimo[i+1].cognome);
    				strcpy(anonimo[i].nome,anonimo[i+1].nome);
    				strcpy(anonimo[i].telefono,anonimo[i+1].telefono);
    
    				strcpy(anonimo[i+1].cognome,temp.cognome);
    				strcpy(anonimo[i+1].nome,temp.nome);
    				strcpy(anonimo[i+1].telefono,temp.telefono);
    			}
    		}
    		alto--;
    	}
    }
    
    int main()
    {
    	int scelta; /* per inserire la scelta del menù */
    	char n[NCHAR]; /* per inserire il nome */
    	char m[NCHAR]; /* per inserire il cognome */
    	char t[NCHAR]; /* per inserire il numero di telefono */
    	char ch = '\0';
    	for (;scelta!= 0;)
    	{ //OPEN for
    		printf ("Programma per la gestione della rubrica di uno smartphone\n");
    		printf ("\n1 - Inserisci Contatto\n");
    		printf ("\n2 - Visualizza Contatto\n");
    		printf ("\n0 - Esci dal programma\n");
    		printf ("\nDigita: ");
    		scanf ("%d", &scelta);
    		switch (scelta)
    		{
    		case 0: // Exit
    			{
    				printf ("\nGrazie per la scelta\n\n");
    			}
    			break;
    		case 1: // Inserisci contatto
    			{
    				printf ("Nome: ");
    				scanf("%s", n);
    				printf ("Cognome: ");
    				scanf ("%s", m);
    				printf ("Telefono: ");
    				scanf ("%s", t);
    				printf ("\n");
    				InsContatto(n,m,t);
    
    			}
    			break;
    		case 2: // Visualizza
    			{
    				printf ("\nNome: ");
    				scanf ("%s", n);
    				printf ("Cognome: ");
    				scanf ("%s", m);
    				Visualizza (n,m);
    			}
    			break;
    		case 3: // Visualizza tutti
    			{
    				printf("Visualizza tutti\n");
    				VisualizzaTutti();
    			}
    		break;
    		case 4:  // Ordina secondo cognome poi visualizza
    			{
    				printf("Ordina secondo cognome poi visualizza\n");
    				bubbleSort(anonimo);
    				VisualizzaTutti();
    			}
    		break;
    		} //CLOSED switch
    	} //CLOSED for
    	system ("Pause");
    	return 0;
    } //CLOSED main
    
    A te la parola.
  • Re: Perchè continua a darmi errore?

    Skynet tu mi ucciderai :S, sono giovane e non voglio morire...
    Non mi ero reso conto che lavoravo su un altro programma creato, simile a questo ma molto più semplice. Purtroppo il professore (studio Ingegneria delle Telecomunicazioni) ha fissato vincoli nel programma come ad esempio non poter utilizzare variabili globali, per questo motivo ho realizzato più algoritmi anche per prendere un pò la mano in vista dell'esame.

    L'algoritmo sul quale applicavo la bubblesort è:
    
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    
    #define MAXDIMSTRINGHE 200
    
    
    
    typedef
    struct{
     char nome[MAXDIMSTRINGHE];
     char cognome[MAXDIMSTRINGHE];
     char telefono[MAXDIMSTRINGHE];
    } account ;
    account anonimo;
    
    typedef
    struct {
           int numero_contatti;
           } numcont;
           numcont numero;
           
    
    void inserisci (char n[MAXDIMSTRINGHE],char m[MAXDIMSTRINGHE],char t[MAXDIMSTRINGHE]){
         strcpy (anonimo.nome,n);
         strcpy (anonimo.cognome,m);
         strcpy (anonimo.telefono,t);
    }
    
    void visualizza (){
         printf("\n Nome: %s Cognome: %s Numero: %s\n
    ",anonimo.nome,anonimo.cognome,anonimo.telefono);
      
         return;
    }
    
    
    
    int main() {
    
    
    
    //dichiarazione di variabili
    
    int i,numero;
    char nom[MAXDIMSTRINGHE],cogn[MAXDIMSTRINGHE],tel[MAXDIMSTRINGHE];
    
    printf("Quanti contatti vuoi inserire?");
    scanf("%d", &numero);
    
    for(i=0;i<numero;i++){
    
    printf("Inserire il nome: ");
    scanf("%s", &nom);
    
    printf("Inserire il cognome:");
    scanf("%s", &cogn);
    
    printf("Inserire il telefono:");
    scanf("%s", &tel);
    
    inserisci (nom,cogn,tel);
    }
    
    
    for(i=0;i<numero;i++){
                          visualizza();
                          }
    
    
    system("PAUSE");
    return 0;
    }
    
    
    Ti prego non odiarmi...
    Come creo la funzione bubblesort senza utilizzare variabili globali?

    skynet grazie ancora per tutta l'attenzione dimostratami e scusami ancora.
  • Re: Perchè continua a darmi errore?

    Nessun problema. Se non vuoi variabili globali allora ste variabili devono stare nel main. Ad ogni funzione passerai il vettore delle strutture (vedi il mio bubble sort) e anche il numero degli account già inseriti.
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define NCHAR 20
    
    // Definizione della struttura
    typedef struct {
    	char nome[NCHAR];
    	char cognome[NCHAR];
    	char telefono[NCHAR];
    } account;
    
    
    
    void InsContatto (char nom[], char cogn[], char tel[], account *anonimo, int & num_account)
    { //OPEN InsContatto
    	strcpy (anonimo[num_account].nome,nom);
    	strcpy (anonimo[num_account].cognome,cogn);
    	strcpy (anonimo[num_account].telefono,tel);
    	num_account++;
    	return;
    } //CLOSED InsContatto
    
    void Visualizza (char nom[], char cogn[], account *anonimo, int & num_account)
    { //OPEN Visualizza
    	int i = 0;
    	bool flag = false;
    	for (i=0; i < num_account && !flag; i++)
    	{ //OPEN for
    		if (!(strcmp(nom,anonimo[i].nome)) && (!strcmp(cogn,anonimo[i].cognome)))
    		{ //OPEN if
    			printf ("Il contatto scelto e': \n");
    			printf ("\n%s %s\n", anonimo[i].nome, anonimo[i].cognome);
    			printf ("%s", anonimo[i].telefono);
    			printf ("\n\n");
    			flag = true;
    		} //CLOSED if
    	} //CLOSED for
    	if(!flag)
    	{ //OPEN else
    		printf ("Il contatto non esiste");
    		printf ("\n\n");
    		} //CLOSED else
    } //CLOSED Visualizza
    // Dichiarazione delle funzioni
    
    void VisualizzaTutti(account *anonimo, int & num_account)
    {
    	int i = 0;
    	for(i = 0; i < num_account; i++)
    	{
    		printf("Contatto %d:\tNome:\t%s\tCognome:\t%s\tTelefono:\t%s\n",i+i,anonimo[i].nome,anonimo[i].cognome,anonimo[i].telefono);
    	}
    }
    
    void bubbleSort(account *anonimo, int & num_account)
    {
    	int alto = num_account - 1;
    	int i = 0;
    
    	while(alto > 0)
    	{
    		for(i = 0; i < alto; i++)
    		{
    			if(strcmp(anonimo[i].cognome,anonimo[i+1].cognome) > 0)
    			{
    				account temp;
    				strcpy(temp.cognome,anonimo[i].cognome);
    				strcpy(temp.nome,anonimo[i].nome);
    				strcpy(temp.telefono,anonimo[i].telefono);
    
    				strcpy(anonimo[i].cognome,anonimo[i+1].cognome);
    				strcpy(anonimo[i].nome,anonimo[i+1].nome);
    				strcpy(anonimo[i].telefono,anonimo[i+1].telefono);
    
    				strcpy(anonimo[i+1].cognome,temp.cognome);
    				strcpy(anonimo[i+1].nome,temp.nome);
    				strcpy(anonimo[i+1].telefono,temp.telefono);
    			}
    		}
    		alto--;
    	}
    }
    
    int main()
    {
    	account anonimo[100];
    	int num_account = 0;
    	int scelta = -1; /* per inserire la scelta del menù */
    	char n[NCHAR]; /* per inserire il nome */
    	char m[NCHAR]; /* per inserire il cognome */
    	char t[NCHAR]; /* per inserire il numero di telefono */
    	char ch = '\0';
    	for (;scelta!= 0;)
    	{ //OPEN for
    		printf ("Programma per la gestione della rubrica di uno smartphone\n");
    		printf ("\n4 - Ordina x cognome e visualizza\n");
    		printf ("\n3 - Visualizza tutti\n");
    		printf ("\n2 - Visualizza Contatto\n");
    		printf ("\n1 - Inserisci Contatto\n");
    		printf ("\n0 - Esci dal programma\n");
    		printf ("\nDigita: ");
    		scanf ("%d", &scelta);
    		switch (scelta)
    		{
    		case 0: // Exit
    			{
    				printf ("\nGrazie per la scelta\n\n");
    			}
    			break;
    		case 1: // Inserisci contatto
    			{
    				printf ("Nome: ");
    				scanf("%s", n);
    				printf ("Cognome: ");
    				scanf ("%s", m);
    				printf ("Telefono: ");
    				scanf ("%s", t);
    				printf ("\n");
    				InsContatto(n,m,t,anonimo,num_account);
    
    			}
    			break;
    		case 2: // Visualizza
    			{
    				printf ("\nNome: ");
    				scanf ("%s", n);
    				printf ("Cognome: ");
    				scanf ("%s", m);
    				Visualizza (n,m,anonimo,num_account);
    			}
    			break;
    		case 3: // Visualizza tutti
    			{
    				printf("Visualizza tutti\n");
    				VisualizzaTutti(anonimo,num_account);
    			}
    		break;
    		case 4:  // Ordina secondo cognome poi visualizza
    			{
    				printf("Ordina secondo cognome poi visualizza\n");
    				bubbleSort(anonimo,num_account);
    				VisualizzaTutti(anonimo,num_account);
    			}
    		break;
    		} //CLOSED switch
    	} //CLOSED for
    	system ("Pause");
    	return 0;
    } //CLOSED main
    
  • Re: Perchè continua a darmi errore?

    Una domanda? Ma ancora vi fanno studiare C puro all'università? Nessun cenno a C++ e alle classi STL tipo string, vector, list ecc. Mi sembra strano e poco istrutivo in quanto adesso il C si usa solo x scrivere i firmware o cose a bassissimo livello. In C++ tutto il tuo problema si riduce a queste pocche righe. (parlo di sort e inserimento dati)
    
    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
    
    typedef struct _account{
    	std::string nome;
    	std::string cognome;
    	std::string telefono;
    } account;
    
    bool predCognome(const account & left, const account & right)
    {
    	return left.cognome < right.cognome;
    };
    bool predNome(const account & left, const account & right)
    {
    	return left.nome < right.nome;
    };
    bool predTelefono(const account & left, const account & right)
    {
    	return left.telefono < right.telefono;
    };
    
    
    int main(void)
    {
    	std::vector<account> anonimo;
    	std::sort(anonimo.begin(),anonimo.end(),predCognome);
    	std::sort(anonimo.begin(),anonimo.end(),predNome);
    	std::sort(anonimo.begin(),anonimo.end(),predTelefono);
    	return 0;
    }
    
Devi accedere o registrarti per scrivere nel forum
23 risposte