Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2016
    Messaggi
    6

    [C] Programmazione e lettura da file

    Ciao ragazzi, sono alle prime armi con questo forum quindi perdonatemi se sarò poco chiaro. Sto imparando a programmare in C e mi capita spesso di avere a che fare con i FILE. In questo esercizio devo aprire il file e memorizzare il suo contenuto nei 4 array dichiarati. Potreste dirmi cortesemente come faccio a memorizzare la stringa di caratteri? I numeri si memorizzano correttamente, invece le parole no. Come devo fare? E cosa devo modificare?




    int main(int argc, char** argv) {


    FILE *f;
    int i, j;
    int N;
    int s;
    char nome[MAX];
    int record[MAX];
    int quantita[MAX];
    float prezzo[MAX];
    int c;

    int rec, qnt;
    float pr;


    printf("Digitare '1' per aggiungere un altro attrezzo\n");
    printf("Digitare '2' per controllare un attrezzo\n");
    printf("Digitare '3' per modificare un attrezzo\n");
    printf("Digitare '4' per terminare il programma\n");
    printf("? ");

    scanf("%d", &c);


    while( c != 4) {
    if (c == 1) {
    f = fopen("testonuovo.txt", "a");
    if(f == NULL) {
    printf("Errore!");
    exit(1);
    }
    printf("Inserire il record dell'attrezzo: ");
    scanf("%d", &rec);
    printf("Inserire il nome dell'attrezzo: ");
    scanf("%s", nome);
    printf("Inserire la quantita dell'oggetto: ");
    scanf("%d", &qnt);
    printf("Inserire il prezzo dell'attrezzo: ");
    scanf("%f", &pr);
    fprintf(f, "\n%d\t%s\t%d\t%.2f", rec, nome, qnt, pr);
    fclose(f);
    }

    if (c == 2) {
    f = fopen("testonuovo.txt", "r");
    if(f == NULL) {
    printf("Errore!");
    exit(1);
    }
    for(i=0; !feof(f); i++) {
    fscanf(f, "%d %s %d %f", &record[i], &nome[i], &quantita[i], &prezzo[i]);
    }

    printf("Quale attrezzo si vuole controllare?\nRecord: ");
    scanf("%d", &rec);

    for(j=0; j<i; j++) {
    if(record[j] == rec) {
    printf("\n%d\t%s\t%d\t%.2f", record[j], &nome[j], quantita[j], prezzo[j]);
    }
    }
    fclose(f);
    }






    Il file è questo:


    3 levigatrice 7 57.98
    17 martello 76 11.99
    24 seghetto 21 11.00
    39 tagliaerba 3 79.50




    ogni qual volta voglio stampare i nomi mi esce: lmstagliaerba (ad esempio)
    Grazie in anticipo per l'aiuto!

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Il forum corretto è Programmazione e, visto che hai già scritto lì, chiudo questa discussione.
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

Tag per questa discussione

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.