Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206

    [C]Dati char[n] nella struct

    Ciao popolo
    ho una struct così:
    codice:
    struct contatto
    {
    	int id;
    	char nome[50];
    	...
    } rubrica;
    per salvare i dati che ricevo nella struct faccio così:
    codice:
    ...
    rubrica.id = id;
    rubrica.nome = nome;
    ...
    però così mi dà questo errore:
    [/quote]
    error: incompatible types in assignment[/quote]
    come devo fare?


  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    prova
    strcpy(rubrica.nome, nome);
    sempre che rubrica sia una struct dichiarata

  3. #3
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Originariamente inviato da floyd
    ...
    sempre che rubrica sia una struct dichiarata
    cioè, sai non sono ancora pratico col C

    ho scritto così:
    codice:
    strcpy(rubrica.nome, nome);
    strcpy(rubrica.cognome, cognome);
    giusto?

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    ma prooovalo

  5. #5
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Originariamente inviato da floyd
    ma prooovalo
    adesso, facendo così:
    codice:
    // Chiedo all'utente tutti i dati relativi al contatto
    // NOME
    printf("Inserire il nome> ");
    char nome[50];
    scanf("%s", &nome);
    // COGNOME
    printf("Inserire il cognome> ");
    char cognome[50];
    scanf("%s", &cognome);
    // E-MAIL
    printf("Inserire la e-mail> ");
    char mail[60];
    scanf("%s", &mail);
    // TELEFONO
    printf("Inserire il numero di telefono> ");
    char tel[60];
    scanf("%s", &tel);
    // CELLULARE
    printf("Inserire il numero di cellulare> ");
    char cell[60];
    scanf("%s\n", &cell);
    // Chiedo all'utente come vuole salvare il contatto
    printf("Come vuoi salvare il contatto?\n");
    printf("1) Nella struct\n");	
    printf("2) Su file\n");
    int scl;
    scanf("%i", &scl);
    mi si blocca dopo aver scritto l'ultimo dato (il num. di cell.) e non va + avanti

  6. #6
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Originariamente inviato da floyd
    ma prooovalo
    questa è la minifunzione che uso x richiamare i dati dalla struct (e verificare il mio operato)
    codice:
    revisualizza()
    {
    	printf("%s\n%s", rubrica.nome, rubrica.cognome);
    }
    stando al codice dovrebbe visualizzare 2 campi, invece il stdout scrive:
    pippo // NOME CHE HO MESSO
    plutopippo // ???
    pluto //COGNOME CHE HO MESSO
    perchè???

  7. #7
    A parte che, nel modo in cui hai dichiarato le variabili, GCC si rifiuta addirittura di compilarla, una roba così

    Ad ogni modo l'errore sta qui
    codice:
    scanf("%s\n", &cell);
    Che c'entra il newline in uno scanf?

    Codice funzionante:
    codice:
    #include <stdio.h>
    #define MAX 100
    
    main() 
    {
    
      char nome[MAX],cognome[MAX],mail[MAX],tel[MAX],cell[MAX];
    
      printf("Inserire il nome> ");
      scanf("%s", &nome);
    
      printf("Inserire il cognome> ");
      scanf("%s", &cognome);
    
      printf("Inserire la e-mail> ");
      scanf("%s", &mail);
    
      printf("Inserire il numero di telefono> ");
      scanf("%s", &tel);
    
      printf("Inserire il numero di cellulare> ");
      scanf("%s", &cell);
    
      printf("Come vuoi salvare il contatto?\n");
      printf("1) Nella struct\n");	
      printf("2) Su file\n");
    
    /* ...... */
    
    return 0;
    }

  8. #8
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Originariamente inviato da maiosyet_2
    A parte che, nel modo in cui hai dichiarato le variabili, GCC si rifiuta addirittura di compilarla, una roba così
    scusa, ma perchè ho dichiarato male le var

    P.S. GCC lo compila senza errori

  9. #9
    Originariamente inviato da Aki
    scusa, ma perchè ho dichiarato male le var

    P.S. GCC lo compila senza errori
    perche' lo standard C vuole che le variabili siano definite in posti precisi praticamente
    all'inizio delle funzioni.

    mentre in c++ puoi definirle dove vuoi..

  10. #10
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Originariamente inviato da kentaromiura
    perche' lo standard C vuole che le variabili siano definite in posti precisi praticamente
    all'inizio delle funzioni.

    mentre in c++ puoi definirle dove vuoi..
    ah ok
    però non credo sia così grave visto che il GCC non dà nè warnings nè tantomeno errors

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.