Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Malliratkaisu
- #include <stdio.h>
- /* tehdään rakenteesta globaali */
- struct henkilo{
- char etunimi[20+1];
- char sukunimi[20+1];
- char puhelin[20+1];
- };
- int main(void)
- {
- struct henkilo hlotaulu[50], poistettava;
- int tietoja, i, poistettuja = 0;
- const char *tiedNimi = "luettelo.txt";
- FILE *fp;
- /* haetaan tiedostosta tulostettavat tiedot */
- if((fp = fopen(tiedNimi,"r")) == NULL){
- printf("tiedoston %s avaaminen epäonnistui\n", tiedNimi);
- exit(1);
- }
- fscanf(fp,"%d", &tietoja);
- for(i=0;i<tietoja;i++){
- fscanf(fp,"%s %s %s",
- hlotaulu[i].etunimi, hlotaulu[i].sukunimi, hlotaulu[i].puhelin);
- }
- fclose(fp);
- /* poistettavan henkilön tietojen kysyminen */
- printf("Anna etunimi:");
- scanf("%s",poistettava.etunimi);
- printf("Anna sukunimi:");
- scanf("%s",poistettava.sukunimi);
- /* päivitetään tiedot, jos henkilö löytyy */
- if((fp = fopen(tiedNimi,"w")) == NULL){
- printf("tiedoston %s avaaminen epäonnistui\n", tiedNimi);
- exit(1);
- }
- for(i=0;i<tietoja;i++){
- if(strcmp(poistettava.etunimi,hlotaulu[i].etunimi) == 0 &&
- strcmp(poistettava.sukunimi,hlotaulu[i].sukunimi) == 0){
- poistettuja++;
- }
- }
- if(poistettuja != 0){
- fprintf(fp,"%d\n", tietoja-poistettuja);
- }
- else{
- fprintf(fp,"%d\n", tietoja);
- }
- poistettuja = 0;
- for(i=0;i<tietoja;i++){
- if(strcmp(poistettava.etunimi,hlotaulu[i].etunimi) == 0 &&
- strcmp(poistettava.sukunimi,hlotaulu[i].sukunimi) == 0){
- poistettuja++;
- }
- else{
- fprintf(fp,"%s %s %s\n", hlotaulu[i].etunimi, hlotaulu[i].sukunimi, hlotaulu[i].puhelin);
- }
- }
- if(poistettuja == 0){
- printf("Etsimääsi henkilöä ei löytynyt luettelosta.\n");
- }
- else{
- printf("Tiedot poistettu luettelosta.\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement