C程序以获取用户的联系并将其添加到文件中

时间:2018-12-26 10:46:11

标签: c printf scanf

我编写了这段代码来从用户那里获取输入并将其添加到文件中。当我在联机编译器上运行此代码时,收到一条消息,通知我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 :(得分:2)

您试图在不声明结构变量的情况下读取输入。

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);