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

    [c\c++]Strutture e puntatori a strutture per una funzione

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define MAX 114
    
    struct element_t{
            int na;
            char nome[20],
                 simbolo[3],
                 classe[20];
            float peso;
            int guscio1,
                guscio2,
                guscio3,
                guscio4,
                guscio5,
                guscio6,
                guscio7;
    }element_t;
    
    struct element_t list[MAX];
    
    int n=0;
    
    int
    main ()
    {
         FILE *tavola=fopen("tavola.txt","r");
         while (n<MAX)
         {
         fscanf(tavola,"%d\n",&list[n].na);
         printf("NA %d\n",list[n].na);
         fgets(list[n].nome,21,tavola);
         printf("NOME %s",list[n].nome);
         fgets(list[n].simbolo,4,tavola);
         printf("SIMBOLO %s",list[n].simbolo);
         fgets(list[n].classe,21,tavola);
         printf("CLASSE %s",list[n].classe);
         fscanf(tavola,"%f\n",&list[n].peso);
         printf("PESO %f\n",list[n].peso);
         fscanf(tavola,"%d\n",&list[n].guscio1);
         printf("G1 %d\n",list[n].guscio1);
         fscanf(tavola,"%d\n",&list[n].guscio2);
         printf("G2 %d\n",list[n].guscio2);
         fscanf(tavola,"%d\n",&list[n].guscio3);
         printf("G3 %d\n",list[n].guscio3);
         fscanf(tavola,"%d\n",&list[n].guscio4);
         printf("G4 %d\n",list[n].guscio4);
         fscanf(tavola,"%d\n",&list[n].guscio5);
         printf("G5 %d\n",list[n].guscio5);
         fscanf(tavola,"%d\n",&list[n].guscio6);
         printf("G6 %d\n",list[n].guscio6);
         fscanf(tavola,"%d\n",&list[n].guscio7);
         printf("G7 %d\n",list[n].guscio7);
         n++;
         }
         system("pause");
         }
    devo riuscire a mandare tutto ciò che stà in main in una funzione... ma non capsco come fare......HELP PLS

  2. #2
    Eh?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    in pratica devo riuscire a fare una funzione che mi legga il file e inserisca nella struttura element_t i dati che poi devo usare in main......più chiaro??

  4. #4
    E dove sta il problema? Copia/incolla!
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    pensavo che bisognava usare dei puntatori....ma... volendolo fare cn i puntatori... come si fa??? mo il dubbio mi è venuto...

  6. #6
    Cosa c'entrano adesso i puntatori? Tu intendi fare una funzione generica per popolare una singola struttura o vuoi che ti popoli tutto l'array? L'uso dei puntatori qui dipende dal fatto che tu voglia passare la struttura da popolare alla funzione per valore o per riferimento, e nel caso in questione la scelta è pressoché indifferente ai fini delle prestazioni.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    tutto l'array...

  8. #8
    Copia-incolla:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define MAX 114
    
    struct element_t{
            int na;
            char nome[20],
                 simbolo[3],
                 classe[20];
            float peso;
            int guscio1,
                guscio2,
                guscio3,
                guscio4,
                guscio5,
                guscio6,
                guscio7;
    }element_t;
    void caricadati();
    struct element_t list[MAX];
    
    int n=0;
    
    int main ()
    {
        caricadati();
        system("pause");
    }
    void caricadati()
    {
         FILE *tavola=fopen("tavola.txt","r");
         while (n<MAX)
         {
         fscanf(tavola,"%d\n",&list[n].na);
         printf("NA %d\n",list[n].na);
         fgets(list[n].nome,21,tavola);
         printf("NOME %s",list[n].nome);
         fgets(list[n].simbolo,4,tavola);
         printf("SIMBOLO %s",list[n].simbolo);
         fgets(list[n].classe,21,tavola);
         printf("CLASSE %s",list[n].classe);
         fscanf(tavola,"%f\n",&list[n].peso);
         printf("PESO %f\n",list[n].peso);
         fscanf(tavola,"%d\n",&list[n].guscio1);
         printf("G1 %d\n",list[n].guscio1);
         fscanf(tavola,"%d\n",&list[n].guscio2);
         printf("G2 %d\n",list[n].guscio2);
         fscanf(tavola,"%d\n",&list[n].guscio3);
         printf("G3 %d\n",list[n].guscio3);
         fscanf(tavola,"%d\n",&list[n].guscio4);
         printf("G4 %d\n",list[n].guscio4);
         fscanf(tavola,"%d\n",&list[n].guscio5);
         printf("G5 %d\n",list[n].guscio5);
         fscanf(tavola,"%d\n",&list[n].guscio6);
         printf("G6 %d\n",list[n].guscio6);
         fscanf(tavola,"%d\n",&list[n].guscio7);
         printf("G7 %d\n",list[n].guscio7);
         n++;
         }
         return;
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.