Телефонный справочник: повторно добавляется последняя введенная фамилия - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задача:написать программу, которая записывает в файл имя, фамилию и номер телефона.За один сеанс работы в файл можно добавить информацию о нескольких людях. Код написала, проблема в том, что повторно добавляется последняя введенная фамилия. Данные правильно записывает в файл и только косяк с повтором фамилии.Как можно переделать код?
#include <stdio.h>
#include <iostream>
#define N 100
void main()
{
    setlocale(0,"Russian");
 
    FILE*f;
    char surname[N];
    char name[N];
    int  a;
 
    if((f=fopen("K:\\hellome.txt","w"))==NULL)
        printf("Файл не найден\n");
    else
    {
       printf("Добавление информации в телефонный справочник\n");
       
           printf("Фамилия->");
           scanf("%s",surname);
           fprintf(f,"%s ",surname);
           while(!feof(stdin))
           {
           printf("Имя->");
           scanf("%s",name);
           printf("Номер->");
           scanf("%d",&a);
           fprintf(f," %s %d \n",name,a);
           puts("\nИнформация добавлена\n");
           printf("Фамилия->");
           scanf("%s",surname);
           fprintf(f,"%s ",surname);
           }
    }
       fclose(f);
 
}

Решение задачи: «Телефонный справочник: повторно добавляется последняя введенная фамилия»

textual
Листинг программы
#include <stdio.h>
#include <iostream>
#define N 100
void main()
{
    setlocale(0,"Russian");
 
    FILE*f;
    char surname[N];
    char name[N];
    int  a;
 
    if((f=fopen("K:\\hellome.txt","w"))==NULL)
        printf("Файл не найден\n");
    else
    {
       printf("Добавление информации в телефонный справочник\n");
           while(!feof(stdin))
           {
           printf("Фамилия->");
           scanf("%s",surname);
           fprintf(f,"%s ",surname);
           printf("Имя->");
           scanf("%s",name);
           printf("Номер->");
           scanf("%d",&a);
           fprintf(f," %s %d \n",name,a);
           puts("\nИнформация добавлена\n");
           }
    }
       fclose(f);
 
}

Объяснение кода листинга программы

Вывод информации в справочник на экран и запись в файл «hello.txt»:

  1. Фамилия->
  2. Имя->
  3. Номер->
  4. Информация добавлена
  5. Фамилия->
  6. Имя->
  7. Номер->
  8. Информация добавлена
  9. Фамилия->
  10. Имя->
  11. Номер->
  12. Информация добавлена
  13. Фамилия->
  14. Имя->
  15. Номер->
  16. Информация добавлена
  17. Фамилия->
  18. Имя->
  19. Номер->
  20. Информация добавлена

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.444 из 5
Похожие ответы