User Tools

Site Tools


cs:c_language:file_writing_1
Return to Home page

Differences

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

Link to this comparison view

cs:c_language:file_writing_1 [2019/02/26 14:35] (current)
Line 1: Line 1:
 +====== File writing (Example 1) ======
 +**Concepts:​**\\
 +Function for open, close and write data into a file.
  
 +**Text:**\\
 +Implement a C program that:
 +  * fills a vector of structures, where each element of the vector is a structure that contains a vector of characters containing the name of a student, a variable of type  ''​unsigned int''​ containing a student identifier and a variable of type ''​float''​ containing the average value of the scores of the exams attended by the student
 +  * opens a file with name ''​out.txt''​ for writing the data stored in the vector of structures
 +  * writes in the file the content of the vector of structures previously filled (a record/​element of the vector for each row of the file)
 +  * closes the file
 +
 +**Soluzion:​**\\
 +<file C write_file_1.c>​
 +/* Example about the functions useful to write some data into a file */
 +
 +#include <​stdio.h>​
 +#include <​stdlib.h>​
 +#include <​string.h>​
 +
 +#define LEN 50
 +#define N_STUD 2
 +
 +/* Definition of a new type stud_t */
 +typedef struct stud{
 +  char name[LEN+1];​
 +  unsigned int student_id;
 +  float average;
 +}stud_t;
 +
 +
 +int main() {
 +  FILE *fp;
 +  stud_t students[N_STUD];​
 +  int i;
 +  char row[LEN+1];
 +  ​
 +  /* Filling of the first two records of the vector of type stud_t */
 +  strcpy(students[0].name,​ "​Jules"​);​
 +  students[0].student_id = 122333;
 +  students[0].average = 23.5;
 +
 +  strcpy(students[1].name,​ "​Laia"​);​
 +  students[1].student_id = 122334;
 +  students[1].average = 29.5;
 +
 +  /* Opening the file for write */
 +  fp = fopen("​out.txt",​ "​w"​);​
 +  if (fp == NULL){
 +    printf("​Error:​ impossible to open the file out.txt\n"​);​
 +    exit(1);
 +  }
 +
 +  /* Write data into the file: first method using the function fprintf */
 +  fprintf(fp, "First writing method\n"​);​ /* Recommended */
 +  for(i=0; i<​N_STUD;​ i++){
 +    fprintf(fp, "%s %d %f\n", students[i].name,​ students[i].student_id,​ students[i].average);​
 +  }
 +  ​
 +  /* Write data into the file: second method using the function fputs */
 +  fputs("​Second writing method\n",​ fp);
 +  for(i=0; i<​N_STUD;​ i++){
 +    sprintf(row,​ "%s %d %f\n", students[i].name,​ students[i].student_id,​ students[i].average);​
 +    fputs(row, fp);
 +  }
 +
 +    fclose(fp); /* Closing the 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/cs/c_language/file_writing_1?rev=1551188114&do=diff
/web/htdocs/www.skenz.it/home/data/pages/cs/c_language/file_writing_1.txt ยท Last modified: 2019/02/26 14:35 (external edit)

Privacy Policy