Do you know that? 46% of freelancers typically work for a client for one year or longer next

How can I read and write comma-delimited text?

Many of today's popular programs use comma-delimited text as a means of transferring data from one
program to another, such as the exported data from a spreadsheet program that is to be imported by a database
program. Comma-delimited means that all data (with the exception of numeric data) is surrounded by
double quotation marks ("") followed by a comma. Numeric data appears as-is, with no surrounding double
quotation marks. At the end of each line of text, the comma is omitted and a newline is used.

To read and write the text to a file, you would use the fprintf() and fscanf() standard C library functions.
The following example shows how a program can write out comma-delimited text and then read it back in.

#include <stdio.h>
#include <string.h>
typedef struct name_str
{
     char       first_name[15];
     char       nick_name[30];
     unsigned years_known;
} NICKNAME;
NICKNAME nick_names[5];
void main(void);
void set_name(unsigned, char*, char*, unsigned);
void main(void)
{
     FILE*     name_file;
     int       x;
     NICKNAME tmp_name;
     printf("\nWriting data to NICKNAME.DAT, one moment please...\n");
     /* Initialize the data with some values... */
     set_name(0,    "Sheryl",      "Basset",      26);
     set_name(1,    "Joel",        "Elkinator",    1);
     set_name(2,    "Cliff",       "Shayface",    12);
     set_name(3,    "Lloyd",       "Lloydage",    28);
     set_name(4,    "Scott",       "Pie",          9);
     /* Open the NICKNAME.DAT file for output in text mode. */
     name_file = fopen("NICKNAME.DAT", "wt");
     /* Iterate through all the data and use the fprintf() function
        to write the data to a file. */
     for (x=0; x<5; x++)
     {
          fprintf(name_file, "\"%s\", \"%s\", %u\n",
                      nick_names[x].first_name,
                      nick_names[x].nick_name,
                      nick_names[x].years_known);
     }
     /* Close the file and reopen it for input. */
     fclose(name_file);
     printf("\nClosed NICKNAME.DAT, reopening for input...\n");
     name_file = fopen("NICKNAME.DAT", "rt");
     printf("\nContents of the file NICKNAME.DAT:\n\n");
     /* Read each line in the file using the scanf() function
        and print the file's contents. */
     while (1)
     {
          fscanf(name_file, "%s %s %u",
                     tmp_name.first_name,
                     tmp_name.nick_name,
                     &tmp_name.years_known);
          if (feof(name_file))
               break;
          printf("%-15s %-30s %u\n",
                     tmp_name.first_name,
                     tmp_name.nick_name,
                     tmp_name.years_known);
     }
     fclose(name_file);
}
void set_name(unsigned name_num, char* f_name, char* n_name, unsigned years)
{
     strcpy(nick_names[name_num].first_name, f_name);
     strcpy(nick_names[name_num].nick_name,  n_name);
     nick_names[name_num].years_known = years;
}