Visualizzazione dei risultati da 1 a 3 su 3
  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
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Per un array di stringhe, devi indicare anche quanto può essere lunga ogni stringa, ad esempio 30 caratteri

    char nome[MAX][30];
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2016
    Messaggi
    6
    Grazie mille proverò come mi hai consigliato

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.