SHARE
TWEET

Untitled

a guest May 19th, 2019 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>                                    //Am sters aproape toate liniile din fisier, pentru ca imi e mai
  2. #include <stdlib.h>                                   //usor sa vad daca programul merge bine.
  3. #include <string.h>
  4.  
  5. #define SIZELINE 100
  6.  
  7. typedef struct node               //struct pentru lista  
  8. {
  9.   char songName[SIZELINE];        
  10.   struct node *next;
  11. }LIST;
  12.  
  13. FILE *pFile;                //pointer pentru fisierul initial
  14. FILE *pTitleFile;           //pointer pentru fisierul in care se vor scrie doar titlurile
  15.  
  16. char singleLine[SIZELINE];                               //variabila pentru fisierul initial
  17. char singleLineFromTitleFile[SIZELINE];                  //variabila pentru fisierul care se va creea
  18.  
  19. char *title;    //token pentru strtok
  20.  
  21. int main()
  22. {
  23.  
  24.   pTitleFile=fopen("onlyTitles.txt","w");          //deschid fisierul care va fi creat
  25.  
  26.   pFile=fopen("classic-rock-song-list.csv","r");   //deschid fisierul care este dat
  27.  
  28.   int commaCounter=0;     //contor pentru virgule
  29.   int songsCounter=0;     //contor pentru cate cantece sunt in fisierul dat  P.S: am sters majoritatea pentru a-mi fi mai usor
  30.  
  31.   if(pTitleFile==NULL)
  32.     {
  33.       printf("File doesn't exist!\n");         //verificare fisier creat
  34.     }
  35.  
  36.   if(pFile==NULL)
  37.     {
  38.       printf("File doesn't exist!\n");        //verificare fisier dat
  39.     }
  40.  
  41.   while(fgets(singleLine,SIZELINE,pFile) != NULL)   //loop pentru preluarea informatiilor din fisierul dat
  42.     {
  43.    
  44.       title=strtok(singleLine,",");    
  45.       commaCounter=1;                   //fortez doar pana la prima virgula
  46.      
  47.       if(commaCounter==1)
  48.     {
  49.       printf("%s\n",title);                   //printare titlu in terminal
  50.       fprintf(pTitleFile,"%s\n",title);       //printare titlu in noul fisier
  51.     }
  52.      
  53.       songsCounter++;     //iterare pentru numarul de cantece
  54.      
  55.     }
  56.  
  57.  
  58.   fclose(pFile);        //inchid fisierul dat
  59.   fclose(pTitleFile);   //inchid fisierul creat
  60.  
  61.   printf("\nWe have printed %d title songs\n",songsCounter);
  62.  
  63.   printf("\n");
  64.  
  65.  
  66.  
  67.   LIST *head;       //creez o variabila pentru capul listei
  68.   LIST *current;    //creez o variabila pentru nodul curent
  69.  
  70.   head=current=NULL;  //initializez cele doua variabile cu NULL
  71.  
  72.  
  73.   pTitleFile=fopen("onlyTitles.txt","r");    //deschid fisierul creat doar cu titlurile dar de aceasta data il citesc
  74.  
  75.   if(pTitleFile==NULL)      
  76.     {
  77.       printf("File doesn't exist!\n");       //verific fisierul doar cu titlurile
  78.     }
  79.  
  80.   while(fgets(singleLineFromTitleFile,SIZELINE,pTitleFile) != NULL)    //loop pentru preluarea informatiilor din fisier
  81.     {
  82.       LIST *node=malloc(sizeof(LIST));    //aloc dinamic un node
  83.  
  84.       strcpy(node->songName,singleLineFromTitleFile); //copiem in nodul de tip char valoarea extrasa din fisier
  85.       node->next=NULL;                   //initializam urmatorul nod cu NULL
  86.  
  87.       if(head==NULL)      
  88.     {
  89.       current=head=node;       //daca head este NULL current si node sunt egale cu head
  90.     }
  91.       else
  92.     {
  93.       current=current->next=node;      
  94.     }  
  95.     }
  96.  
  97.   fclose(pTitleFile);    //inchid fisierul cu titlurile
  98.  
  99.   for(current=head ; current ; current=current->next)    
  100.     {
  101.       printf("%s",current->songName); //print pentru fiecare nod
  102.       free(current);   //eliberez memoria pentru fiecare nod
  103.     }
  104.  
  105.   printf("\n");
  106.  
  107.  
  108.  
  109.   return 0;
  110. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top