Enregistrer les données de sortie dans un fichier texte

Questions et réponses du rseoc 2021-12-30 04:26:01 阅读数:387

enregistrer les donn es sortie
#include<stdio.h>#include<stdlib.h>#include<string.h>#define ITEM "Song management system"struct song *shuru(struct song **head);void charu(struct song **head);void shanchu(struct song **head);void liulan(struct song **head);void xiugai(struct song **head);void creat(struct song **head);struct date { int year; int month; }tis;struct song //Déclarer le type de structurestruct song { char music[20]; char company[20]; char author[20]; char singer[20]; struct date tis; struct song *next; };int main() //Choix de l'action requise{ struct song *shuru(struct song **head); void charu(struct song **head); void shanchu(struct song **head); void liulan(struct song **head); void xiugai(struct song **head); void creat(struct song **head); void fenzu(struct song **head); struct song *head; // Un pointeur qui définit un type de structure comme argument  int k,w1; char ch; z: while(k!=7) { do{ printf("********** Système de gestion de l'information sur les chansons *********\n\n"); printf("1.Entrée\n"); printf("2.Insérer\n"); printf("3.Supprimer\n"); printf("4.Parcourir\n"); printf("5.Modifier\n"); printf("6.Groupe\n"); printf("7.Sortie\n"); printf(" Veuillez sélectionner la fonction que vous souhaitez :"); scanf("%d",&k); if(k<1&&k>7) w1=1; else w1=0; } while(w1==1); switch(k) { case 1 : //system("cls"); shuru(&head); printf("Appuyez.zRetour au menu principal:"); scanf("%c",&ch); if(ch=='z') { goto z; } break; case 2 : system("cls"); charu(&head); printf("Appuyez.zRetour au menu principal:"); scanf("%c",&ch); if(ch=='z') { goto z; } break; case 3 : system("cls"); shanchu(&head); printf("Appuyez.zRetour au menu principal:"); scanf("%c",&ch); if(ch=='z') { goto z; } break; case 4 : system("cls"); liulan(&head); printf("Appuyez.zRetour au menu principal:"); scanf("%c",&ch); if(ch=='z') { goto z; } break; case 5 : system("cls"); xiugai(&head); printf("Appuyez.zRetour au menu principal:"); scanf("%c",&ch); if(ch=='z') { goto z; } break; case 6 : system("cls"); fenzu(&head); printf("Appuyez.zRetour au menu principal:"); scanf("%c",&ch); if(ch=='z') { goto z; } break; case 7 :exit(0); } }}void creat(struct song **head){ struct song *p=(*head)->next; int j=1; if(p == NULL) { printf("Échec de l'enregistrement"); } FILE *fp=fopen(ITEM,"w"); if(fp == NULL) { printf("Impossible d'ouvrir le fichier\n"); return; } while(p!=NULL) { fprintf(fp,"No%d Le message de la chanson est le suivant :\n",j); fprintf(fp,"Nom Société émettrice Auteur Le chanteur Année de sortie Mois d'émission \n"); fprintf(fp,"%s %s %s %s %d %d \n",p->music,p->company,p->author,p->singer,p->tis.year,p->tis.month); j++; p=p->next; } fclose(fp);}struct song *shuru(struct song **head) // Entrée dans la chanson { printf("***********Entrée**********\n"); int i,n; *head = (struct song *)malloc(sizeof(struct song)); struct song *p=*head, *shang; shang = (struct song *)malloc(sizeof(struct song)); (*head)->next=NULL; printf(" Prêt à entrer le nombre de chansons :"); scanf("%d",&n); printf(" Saisissez les informations de la chanson :\n"); for(i = 1;i<=n;i++) { p=(struct song *)malloc(sizeof(struct song)); shang->next = p; printf("Entrée No.%dLe nom de la chanson:",i); scanf("%s",p->music); printf("Entrée No.%d Société de distribution de chansons :",i); scanf("%s",p->company); printf("Entrée No.%d L'auteur de la chanson :",i); scanf("%s",p->author); printf("Entrée No.%d Le chanteur de la chanson :",i); scanf("%s",p->singer); printf("Entrée No.%d Année de sortie de la chanson :",i); scanf("%d",(&p->tis.year)); printf("Entrée No.%d Le mois de sortie de la chanson :",i); scanf("%d",(&p->tis.month)); (*head)->next=p; shang = p; } printf("Fin de l'entrée\n"); creat(head); printf("Enregistrer avec succès!\n"); return *head;}void charu(struct song **head) // Insérer des informations sur la chanson { void liulan(struct song **head); printf("***********Insérer**********\n"); int i,j=1; struct song *q,*p=(*head)->next; printf(" Saisissez où insérer la chanson :\n"); scanf("%d",&i); while(p->next&&j<i) { p=p->next; j++; } if(p->next == NULL||j>i) printf("Le noeud n'a pas été trouvé\n"); else { q=(struct song *)malloc(sizeof(struct song)); printf(" Saisissez le nom de la chanson à insérer :"); scanf("%s",q->music); printf(" Entrez la société de distribution qui a inséré la chanson :"); scanf("%s",q->company); printf(" Entrez l'auteur de la chanson insérée :"); scanf("%s",q->author); printf(" Saisissez le chanteur pour insérer la chanson :"); scanf("%s",q->singer); printf(" Entrez l'année de sortie de la chanson insérée :"); scanf("%d",&(q->tis.year)); printf(" Entrez le mois de sortie de la chanson insérée :"); scanf("%d",&(q->tis.month)); q->next=p->next; p->next=q; } printf(" .Le répertoire inséré est \n"); liulan(head); }void shanchu(struct song **head) // Supprimer un message de chanson { void liulan(struct song **head); printf("***********Supprimer**********\n"); int i,j=1; struct song *q,*p=(*head)->next; printf(" Saisissez l'emplacement de la chanson à supprimer :\n"); scanf("%d",&i); while(p&&j<i) { p=p->next; j++; } if(p->next==NULL||j>i) printf(" Aucun emplacement trouvé pour supprimer la chanson \n"); else { q=(struct song *)malloc(sizeof(struct song)); q=p->next; p->next=q->next; free(q); } printf(" Le répertoire supprimé est \n"); liulan(head); }void liulan(struct song **head) // Parcourir les chansons du catalogue { printf("***********Les chansons**********\n"); int j=1; struct song *p=(*head)->next; while(p->next!=NULL) { printf("No%d Le message de la chanson est le suivant :\n",j); printf("Nom Société émettrice Auteur Le chanteur Année de sortie Mois d'émission \n"); printf("%s %s %s %s %d %d \n",p->music,p->company,p->author,p->singer,p->tis.year,p->tis.month); j++; p=p->next; }}void xiugai(struct song **head) // Modifier les informations de la chanson { void liulan(struct song **head); printf("***********Modifier**********\n"); int j=1,t; struct song *p=(*head)->next; printf(" Saisissez l'emplacement de la chanson à modifier :\n"); scanf("%d",&t); while(p&&j<t) { p=p->next; j++; } if(p==NULL||j>t) printf(" Aucune chanson trouvée à modifier \n"); else { printf(" Saisissez le nom de la chanson modifiée :\n"); scanf("%s",p->music); printf(" Entrez la société de distribution de la chanson modifiée :\n"); scanf("%s",p->company); printf(" Entrez l'auteur de la chanson modifiée :\n"); scanf("%s",p->author); printf(" Saisissez le chanteur de la chanson modifiée :\n"); scanf("%s",p->singer); printf(" Entrez l'année de sortie de la chanson modifiée :\n"); scanf("%d",p->tis.year); printf(" Entrez le mois de sortie de la chanson modifiée :\n"); scanf("%d",p->tis.month); } printf(" Le répertoire modifié est \n"); liulan(head); }void fenzu(struct song **head){ printf("***********Groupe**********\n"); int i,j,n,m,t=1; char a[20]="\0"; struct song *p=(*head)->next; printf("1. Groupe par chanteur \n"); printf("2. Groupe par société émettrice \n"); printf(" Veuillez saisir le type à grouper :"); scanf("%d",&j); printf(" Veuillez saisir les premières chansons du Groupe :"); scanf("%d",&n); printf(" Veuillez saisir les informations du Groupe :"); scanf("%s",a); switch(j) { case 1: for(i=0;i<n;i++) { if(strcmp(p->singer,a)==0) { printf("No%d Le message de la chanson est :\n",t); printf("%s %s %s %s %d %d\n",p->music,p->singer,p->company,p->author,p->tis.year,p->tis.month); t++; p=p->next; }break; } case 2: for(i=0;i<n;i++) { if(strcmp(p->company,a)==0) { printf("No%d Le message de la chanson est :\n",t); printf("%s %s %s %s %d %d\n",p->music,p->singer,p->company,p->author,p->tis.year,p->tis.month); t++; p=p->next; } } }}

Pourquoi ne pas enregistrer dans le fichier
Demande conseil.




Adopter les réponses:

Peut être sauvegardé dans un fichier , Est - ce que la préservation n'est pas complète , Vérifiez le fonctionnement de la liste


版权声明:本文为[Questions et réponses du rseoc]所创,转载请带上原文链接,感谢。 https://primo.wiki/2021/12/202112231230483557.html