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