User Tools

Site Tools


it:informatica:linguaggio_c:scrittura_file_1
Return to Home page

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

it:informatica:linguaggio_c:scrittura_file_1 [2019/02/26 14:35]
it:informatica:linguaggio_c:scrittura_file_1 [2020/11/26 23:18] (current)
Line 1: Line 1:
 +====== Scrittura file (Esempio 1) ======
 +**Concetti:**\\
  
 +Funzioni di apertura, chiusura e scrittura su file.
 +
 +**Testo:**\\
 +Dopo aver riempito un vettore di strutture (i cui elementi della struttura sono un vettore di caratteri contenente il nome di uno studente, una variabile di tipo ''unsigned int'' contenente la matricola dello studente ed una variabile di tipo ''float'' contenente la sua media):
 +  * Aprire in scrittura un file di nome "''out.txt''" per salvarci i dati contenuti nel vettore di strutture
 +  * Scrivere nel file il contenuto del vettore di strutture precedentemente riempito (un record/elemento del vettore per ogni riga del file)
 +  * Chiudere il file
 +
 +**Soluzione:**\\
 +<file C scrittura_file_1.c>
 +/* Esempio di utilizzo delle funzioni di scrittura su file */
 +
 +#include <stdio.h>
 +#include <stdlib.h>
 +#include <string.h>
 +
 +#define LUN 50
 +#define N_STUD 2
 +
 +/* Definizione di un nuovo tipo stud_t */
 +typedef struct stud{
 +  char nome[LUN+1];
 +  unsigned int matricola;
 +  float media;
 +}stud_t;
 +
 +
 +int main() {
 +  FILE *fp;
 +  stud_t studente[N_STUD];
 +  int i;
 +  char riga[LUN+1];
 +  
 +  /* Riempimento dei primi due record del vettore di tipo stud_t */
 +  strcpy(studente[0].nome, "Stefano");
 +  studente[0].matricola = 120000;
 +  studente[0].media = 25.5;
 +
 +  strcpy(studente[1].nome, "Giulia");
 +  studente[1].matricola = 120001;
 +  studente[1].media = 28.5;
 +
 +  /* Apertura file in scrittura */
 +  fp = fopen("out.txt", "w");
 +  if (fp == NULL){
 +    printf("Errore: impossibile aprire il file out.txt\n");
 +    exit(1);
 +  }
 +
 +  /* Scrittura del file: primo metodo utilizzando la funzione fprintf */
 +  fprintf(fp, "Primo metodo di scrittura\n"); /* Consigliabile */
 +  for(i=0; i<N_STUD; i++){
 +    fprintf(fp, "%s %d %f\n", studente[i].nome, studente[i].matricola, studente[i].media);
 +  }
 +  
 +  /* Scrittura del file: secondo metodo utilizzando la funzione fputs */
 +  fputs("Secondo metodo di scrittura\n", fp);
 +  for(i=0; i<N_STUD; i++){
 +    sprintf(riga, "%s %d %f\n", studente[i].nome, studente[i].matricola, studente[i].media);
 +    fputs(riga, fp);
 +  }
 +
 +    fclose(fp); /* Chiusura del file */
 +
 +  return 0;
 +}
 +</file>

If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it

You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/it/informatica/linguaggio_c/scrittura_file_1?rev=1551188125&do=diff