C Программа для получения контакта от пользователя и добавления его в файл - PullRequest
0 голосов
/ 26 декабря 2018

Я написал этот код, чтобы получить ввод от пользователя и добавить его в файл.Когда я запустил этот код на онлайн-компиляторе, я получил сообщение о том, что есть проблема с вызовом функции scanf.Я не могу понять эту проблему.Не могли бы вы помочь мне решить эту проблему?

#include <stdio.h>
typedef struct {
    char firstName   [20];
    char lastName    [20];
    int  phoneNumber [10];
    char email       [50];
    char address     [100];
    int  dayOfBirth  [2];
    int  monthOfBirth[2];
    int  yearOfBirth [4];
} contact;

void addcontact() {
    FILE *p,*q;
    p = fopen("p.txt", "r+");
    printf(" please enter the first name");
    scanf(" %s", &contact.firstName);
    printf(" next, enter the last name");
    scanf(" %s", &contact.lastName);
    printf(" enter the phone number");
    scanf(" %d", &contact.phoneNumber);
    printf(" enter the email");
    scanf(" %s", &contact.email);
    printf(" enter the address");
    scanf(" %s", &contact.address);
    printf(" enter the day , month and year of birth");
    scanf(" %d %d %d", &contact.dayOfBirth, &contact.monthOfBirth, &contact.yearOfBirth);
    q = fclose(p);
}

Я даже пытался удалить &.

PS: Проект представляет собой телефонную книгу.

1 Ответ

0 голосов
/ 26 декабря 2018

Вы пытаетесь прочитать ввод, не объявляя переменную для структуры.

typedef struct{
  char firstName [20];
  char lastName[20];
  int phoneNumber[10];
  char email[50];
  char address[100];
  int dayOfBirth[2];
  int monthOfBirth[2];
  int yearOfBirth [4];
}contact;

scanf(" %s",&contact.firstName);

contact - тип данных.Вам необходимо объявить переменную типа contact.

Пример:

contact input;
scanf(" %s", input.firstName);
...