Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    4

    Programma

    Salve, vorrei chiedervi un aiuto..è da qualche giorno che provo a fare un esercizio che il mio prof di informatica mi ha dato. Soltanto che secondo me,provandoci anche..non ha senso quello ke lui ha detto..in pratica l'esercizio è: "inserire 10 regioni con nome,popolazione e reddito medio da file riempendo una struttura, stampare gli elementi ordinamente per popo,redd o nome
    cancellare una regione ed inserirla un altra..alla fine stampare sul file.".. fino a qui tutto ok..ma soltanto che a lezione ha detto di utilizzare i puntatori..e tutti gli esempi ke ha fatto sono utilizzando i vettori e non i file..infatti con i vettori sono riuscita a farlo tranquillamente..ma con i file??..non ci sto proprio riuscendo..sapete darmi una mano??grazie mille!!ps dimenticavo il linguaggio è C standard

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Posta il codice che hai scritto...
    Devi leggere dal file e mettere i dati in una qualche struttura dati (ad esempio i vettori), quindi lavori sempre con i vettori e quando arriva il momento di salvare riscrivi tutto sul file.

    Edit: Ah, non dimenticarti i tag CODE
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    4
    sisi li devo mettere in una struttura dati..allora ora provo in questa maniera..vediamo se c riesco..se ho problemi scrivo d nuovo qui..cmq scusami sono nuova del forum ..

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    4
    Quindi per caricare i dati che ci sono nel file..li metto nella struttura giusto?..soltanto che non so xke m da errore :S

    codice:
    #include<stdlib.h>
    #include<stdio.h>
    #include <string.h>
    
    struct list_el {
       char nome[15];    
       int popolazione;
       int redditom;
       struct list_el * next;
       };
    
    typedef struct list_el item;
    
    int nk[10];
    item * curr, * head, * previous, * xfree, * xnext;
    item elemento[10];
    
    int main() {
       FILE *filea;
       filea=fopen("F:/elenco.txt","r+");
       char nomex[15];  
       char n[15][15];
       int i, kk, s1, s2, risposta, risposta1;
       int pop[10]; 
       int red[10];
       
       
       
       for(i=1;i<=10;i++)
       {
       fscanf(filea,"%s",nome[i]);
       fscanf(filea,"%d",popolazione[i]);
       fscanf(filea,"%d",redditom[i]);
       }
    soltanto che m da errore su fscanf xke?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da Grace92
    soltanto che m da errore su fscanf xke?
    Ciao e benvenuta sul forum.
    Alcune semplici regole da seguire nell'apertura e nella conduzione delle discussioni sul forum le trovi nel Regolamento interno e le riassumo qui:

    1) Il linguaggio usato va sempre indicato nel titolo (corretto io)
    2) Il titolo della discussione deve riassumere il contenuto della discussione ("Programma" è troppo generico: tutte le discussioni qui riguardano programmi) (corretto io)
    3) Il codice va postato usando gli appositi tag CODE (corretto io)
    4) Quando qualcosa (compilazione/esecuzione) ti dà errore... posta l'errore. Dire semplicemente "mi dà errore" non aiuta nessuno perchè non stai dicendo a nessuno quale errore.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Posta l'errore e il formato del file.

    Comunque l'errore è evidente:
    codice:
       fscanf(filea,"%s",nome[i]);
       fscanf(filea,"%d",popolazione[i]);
       fscanf(filea,"%d",redditom[i]);
    I vettori nome popolazione e redditom non sono stati definiti da nessuna parte!
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    4
    Grazie mille LeleFT per aver corretto gli errori..non ho avuto modo di leggere il regolamento..scusami!

    Per quanto riguarda il programma..io li avevo messi nella struct..per questo..siccome il prof diceva in una struttura..quindi cancello la struct e metto tutto nei vettori?

  8. #8
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    codice:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    typedef struct info_s {
      char nome[15];
      unsigned int popolazione;
      double redditom;
    } info_t;
    
    int main() {
      char buffer[100];
      info_t prova;
      fgets(buffer, 15, stdin);
      strcpy(prova.nome, buffer);
      prova.nome[strlen(prova.nome)-1] = NULL;
      fgets(buffer, 100, stdin);
      prova.popolazione = atoi(buffer);
      fgets(buffer, 100, stdin);
      prova.redditom = atof(buffer);
      printf("Nome: %s\nPopolazione: %u\nReddito Medio: %0.2f\n", prova.nome, prova.popolazione, prova.redditom);
      return 0;
    }
    Prova a capire e riadattare questo codice...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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.