Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C++] Errore Struct + Richiesta generica

    Salve...

    1) volevo sapere se esiste un canale su IRC dove solitamente si ritrovano
    tutti i programmatori di C++. Un posto dove fare domande veloci con
    risposte immediate.
    Come ben sapete, aspettare un giorno la risposta ad un thread e dover
    interrompere la programmazione è un pò frustrante
    Magari per fare domande veloci.....

    2) mi hanno spiegato oggi gli struct a scuola ma il primo programmino che
    ho fatto mi da subito degli errori.

    codice:
    #include <iostream.h>
    #include <conio.h>
    #include <string.h>
    #include <stdio.h>
    
    void main(){
    clrscr();
    const n=5;
    
    typedef struct studente {
    char nome[20];
    char cognome[20];
    float media;
    }
    
    
    //QUA L'ERRORE
    studente v[n];
    
    //to be continued........
    .............
    
    Volevo dichiarare un'array di tipo studente ("v" come potete vedere), ma mi
    viene dato errore su studente v[n];
    
    MESSAGES:
    Compiling STRUCT_C.CPP:
    Error STRUCT_C.CPP 16: , expected
    Error STRUCT_C.CPP 20: Undefined symbol 'v'
    Error STRUCT_C.CPP 33: Lvalue required
    Warning STRUCT_C.CPP 58: 't' is assigned a value that is never used
    Scusatemi...magari è un errore banalissimo....ma come faccio a dirgli che v
    deve essere un array di n caratteri di tipo studente?

    Grazie mille :-)

  2. #2
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    Allora. Per prima cosa, la struct dichiarala fuori dal main().

    Se la dichiari al suo interno, diventa locale, e non puoi utilizzarla in altri parti forchè all'interno della funzione cui è stata dichiarata.

    Alla fine della struct ci vuole il ;

    Poi, a che cosa ti serve fare typedef struct studente {}; quando, la struct è di per se una classe a metà, quindi per di chiarare la variabile si fa direttamente studente v[10] ?

    Casomai, ti fai la struct studente e puoi dichiarare un puntatore a studente con il typedef ( typedef pStudent studente* ).

    Dimmi se hai risolto il problema.

  3. #3
    Allora. Per prima cosa, la struct dichiarala fuori dal main().
    Infatti la prof. non ci aveva detto dove dichiararla. Anzi! Aveva scritto un esercizio con la dichiarazione dentro la main!
    ....è un pò svampita:sgrat:

    poi ho corretto pure il ";"...altra cosa che non ci aveva detto

    Poi, a che cosa ti serve fare typedef struct studente {}; quando, la struct è di per se una classe a metà, quindi per di chiarare la variabile si fa direttamente studente v[10] ? Casomai, ti fai la struct studente e puoi dichiarare un puntatore a studente con il typedef ( typedef pStudent studente* ).
    Typedef a quanto ho capito serve per non dover riscrivere "struct" ogni volta che richiami la struttura.....le classi non le ho ancora fatte....tantomeno i puntatori....quindi adesso per me è arabo:

    Invece ho scoperto un altro problema...la printf non ce l'hanno mai insegnata ed io la uso un pò a caso....
    Nello stesso programma ho scritto:
    codice:
    fprint("\nInserisci il nome dello/a ",i+1," studente: ");
    Suppongo capiate cosa voglio scrivere...il problema è che, non mi da errore ma, non mi scrive niente dopo "dello/a"....


    Per quanto riguarda la domanda della chat di ritrovo che mi sapete dire?

    Cmq grazie mille....

  4. #4
    Utente di HTML.it L'avatar di Grunt
    Registrato dal
    Dec 2001
    Messaggi
    246
    codice:
    fprintf(STDOUT,"\nInserisci il nome dello/a %d studente:",i+1);
    E' questa la sintassi da usare con ftprintf.... ma ti consiglio di usare printf a sto punto!!!! fprintf serve per indicare lo standard su cui scrivere ad esempio un file, la stampante o il monitor ecc...
    usa questo:
    codice:
    printf("\nInserisci il nome dello/a %d studente:",i+1);

  5. #5
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    typedef serve per definire un tipo di dato da usare nella dichiarazione di variabili ad esempio. Se ti dichiari una struct di nome lista puoi dichiarare un puntatore a lita in questo modo
    LISTA *ptr;
    Ciao

  6. #6
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    Devi fare così:

    #include <iostream>
    #include <string>

    struct Studente
    {
    string nome;
    int ID;
    };

    void main()
    {
    Studente stud;
    cout << "Inserisci il nome e l'ID ";
    cin >> stud.nome >> stud.ID;
    cout << "Nome: "
    << stud.nome << " - "
    << " ID " << stud.ID;

    char t; cin >> t; // Per far rimanere la finestra aperta
    }

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.