Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    213

    [c] Mostrare una stringa di una struct

    io ho una struct definita in file.
    Nel main ho una parte di programma che mi crea un prodotto secondo quella struct:
    codice:
        
    prodotto1.codice = 000;
    prodotto1.nome = "prodotto1";
    prodotto1.desc = "descrizione";
    prodotto1.costo = 30;
    prodotto1.sconto = 10;
    Ora vorrei mostrare a video nome e desc, ma se lo faccio con puts o con %s non ci riesco, mi manda a video dei caratteri strani...Come posso fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Ora vorrei mostrare a video nome e desc, ma se lo faccio con puts o con %s non ci riesco, mi manda a video dei caratteri strani...Come posso fare?
    Ma tu hai provato con
    codice:
    PRINTF("%s",prodotto1.nome);
    Ad ogni modo dovresti darci qualche informazione in più se no è impossibile aiutarti per ognuno di noi.

  3. #3

    Re: [c] Mostrare una stringa di una struct

    Originariamente inviato da Eduadie
    Ora vorrei mostrare a video nome e desc, ma se lo faccio con puts o con %s non ci riesco, mi manda a video dei caratteri strani...Come posso fare?
    Anche qui dovresti postare un esempio compilabile. E soprattutto mostrare la parte che legge la struttura dal file perchè il problema potrebbe essere lì.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    213
    Questa è la struct:
    codice:
    struct prodotto
    {
        int codice;
        char nome[50];
        char desc[50];
        int costo;
        int sconto;
    };
    Il codice è:
    codice:
    struct prodotto prodotto1;
    prodotto1.codice = 000;
    prodotto1.nome = "prodotto1";
    prodotto1.desc = "descrizione";
    prodotto1.costo = 30;
    prodotto1.sconto = 10;
    
    printf("%d\n%s\n%s\n%d\n%d", prodotto1.codice, prodotto1.nome, prodotto1.desc, prodotto1.costo, prodotto1.sconto);
    L'ho provata ad usare cosi oppure ho provato col puts(prodotto1.nome) ma non ci riesco...dove potre sbagliare?

  5. #5
    Originariamente inviato da Eduadie
    codice:
    prodotto1.nome = "prodotto1";
    A parte che se la inizializzi così non capisco cosa c'entra il fatto di leggerla da un file. Comunque il problema è che in C non puoi copiare così una stringa, devi utilizzare la funzione strcpy.

    Per esempio:
    codice:
      strcpy(prodotto1.nome, "prodotto1");

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    213
    Sei stato gentilissimo.
    Dovevo usare strcpy, tutto funziona a meraviglia...grazie

  7. #7
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Originariamente inviato da Eduadie
    Sei stato gentilissimo.
    Dovevo usare strcpy, tutto funziona a meraviglia...grazie
    A parte che hai risolto il problema, sai perchè dovevi usare strcpy?!
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    213
    Perchè?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    213
    codice:
    /*Definisco la struct del prodotto*/
    struct prodotto
    {
        int codice;
        char nome[50];
        char desc[50];
        int costo;
        int sconto;
    } elemento[5];
    
    //Elemento 0
    elemento[0].codice = 0;
    strcpy(elemento[0].nome, "prodotto 0");
    strcpy(elemento[0].desc, "descrizione del prodotto 0");
    elemento[0].costo = 15;
    elemento[0].sconto = 0;
    Se io provo a farlo in questo modo, perchè mi dice l'errore:

    "expected "=", ",".....'asm' or '___attribute___' before '.' token"

    Cosa c'è che non va?

  10. #10
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Non c'è alcun errore nello spezzone di codice che hai postato, posta il contesto e l'errore completo.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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.