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

    Programma in linguaggio c

    Salve a tutti,
    ho un problema per fare questo programma (*nota a fine testo)....

    io ho provato a fare 4 file blocconote strutturati cosi:

    Spaghetti 420 PASTA 5
    Minestra 250 PASTA 6
    Bucatini 450 PASTA 7
    Cannelloni 510 PASTA 8
    (nome calorie tipo prezzo)

    Questo è soltanto dei primi, poi ne ho uno con secondi, frutta e dolce...
    ho provato a creare un primo programma che legge questo file e salvi la struttura di un singolo pasto all'interno di un array...ma nn mi è riuscito...
    cioè penso che sbaglio a fare qualcosa nel procedimento...
    sapreste dirmi un metodo da utilizzare?
    Grazie in anticipo

    *nota
    Formalizzare un programma C in grado di produrre un pasto bilanciato.
    1)Occorre utilizzare una struttura, i cui record contengono: nome del
    particolare cibo, calorie per porzione, tipo (ad es., carne o frutta) e
    prezzo;
    2)La lista completa dei cibi dovrebbe andare a costituire un array di
    strutture.
    Il programma deve costruire un menù che contenga quattro differenti tipi
    di cibo e che soddisfi i vincoli su calorie e prezzo

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Moderazione

    Riporta il codice, così gli utenti possono darti una mano a correggerlo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    questa è quello che avevo fatto...ma nn va per niente..cioè mi fa inserire i dati e mi stampa quello che ho inserito...non carica nulla dal file..

    #include<stdio.h>
    #include<stdlib.h>
    #define MAX 30
    main()
    {
    int i;
    FILE *f1,*f2;
    struct menu
    {
    char nome[MAX];
    float calorie;
    char tipo[MAX];
    float prezzo;
    };
    typedef struct menu primi;
    primi stock[4];
    f1 = fopen("Frutta.txt", "r");
    if (f1 == NULL) {
    printf("Errore durante l'apertura del file.\n");
    exit(0);
    }
    for(i=0;i<4;i++)
    {
    scanf("%s",&stock[i].nome);
    scanf("%f",&stock[i].calorie);
    scanf("%s",&stock[i].tipo);
    scanf("%f",&stock[i].prezzo);
    }
    printf("Ecco il menu' della frutta:\n");
    printf("Nome\t Calorie\t Tipo\t Prezzo\n");
    for(i=0;i<4;i++)
    {
    fprintf("%s",stock[i].nome);
    printf("\t");
    printf("%f",stock[i].calorie);
    printf("\t");
    printf("%s",stock[i].tipo);
    printf("\t");
    printf("%f",stock[i].prezzo);
    printf("\t");
    printf("\n\n");
    }
    fclose(f1);
    system ("Pause");
    }

  4. #4
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Una volta che hai fatto:
    codice:
    f1=fopen("file.txt","r");
    f1 è il puntatore al file e lo puoi usare per leggere lo stream (cioè il canale di comunicazione) del file.
    Usi esattamente le stesse funzioni,però specificando da dove leggere.
    Per esempio puoi fare:
    codice:
    fscanf(f1,"%d",variabile);
    f1 è il puntatore a file,poi ci sono le costanti come stdin e stdout.
    stdin è standard input,cioè scriver printf("ciao"); equivale a scrivere fprintf(stdout,"ciao"), e lo stesso con fscanf solo che usi la costante stdin.
    Io per esempio ho letto questa riga:
    codice:
    fprintf("%s",stock[i].nome);
    Ma ci andrebbe messi f1 all' inizio se vuoi scrivere sul file.
    Poi per fare essere più ordinati i file puoi separare tutti i dati da un carattere di riconoscimento,ancora meglio se quel carattere è la newline perchè in questo caso lo leggi come fosse il buffer di input standard,cioè stdin.

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.