通过使用结构不同的代码将管理器与C程序联系起来

标签 c visual-studio-2012 system structure contacts

现在我遇到了另一个问题,在我更改编码后,如下所示,它仍然显示错误。代码里面没有任何红色下划线,所以我无法找出错误在哪里。那么这个编码有什么错误吗?

struct contact
{
    char name[20],email[20];
    int hpnum;
}add;
int option;
FILE *f;

void addcontact(struct contact list[100]);
void read(struct contact list[100]);

int main (void)
{
    struct contact list[100];
    system("cls");
    printf("==========Welcome to Jeffery's Contact System Management==========\n");
    printf("\t\t\tContact System Main Menu\n");
    printf("[1] Create a New Contact\n");
    printf("[2] Modified Existing Contact\n");
    printf("[3] Delete Existing Contact\n");
    printf("[4] Search Existing Contact\n");
    printf("[5] Exit\n");
    printf("Please enter one of your option.\n");
    scanf("%d",&option);
    switch(option)
    {
        //add new contact
        case 1:addcontact(list);read(list);
        break;
    }

    getch();
}

void addcontact(struct contact list[100])
{
    char name[20],email[20];
    int hpnum,no;

    printf("\nContact Name: ");
    scanf("%s",list[no-1].name);
    fflush(stdin);
    printf("\nHandphone Number: ");
    scanf("%d",&list[no-1].hpnum);
    fflush(stdin);
    printf("\nE-mail: ");
    scanf("%s",list[no-1].email);
}

void read(struct contact list[100])
{
  FILE *f;
  f=fopen("contact.txt","w");
  fwrite(list,sizeof(list),100,f);
  fclose(f);
}

最佳答案

首先, fflush(stdin);undefined错误。应该使用fflush(stdout);

第二,函数 addcontact(struct contact list[100])变量 no 尚未分配任何值,并且您正在 scanf() 中使用具有垃圾值的函数。

第三,位于 read()功能fwrite(list,sizeof(list),100,f);是错误的,应该是这样的。

fwrite(list, sizeof(struct contact), 100, f);

我不确定,但看起来你打算阅读多个联系人,所以你还需要一个可能在 addcontact() 函数内的循环机制

关于通过使用结构不同的代码将管理器与C程序联系起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15122225/

相关文章:

c++ - Linux 中是否有一些原生函数可以在不使用外部库的情况下加载和保存图像?

c - 双指针 C/C++

c# - 为什么在 Visual Studio 2012 中运行测试时看不到调试输出?

wpf - 尝试打开W​​PF项目时Visual Studio 2012崩溃

unix - Unix系统文件表

c - 0x5107ba0 "\374"中的 "\374\003xxx"是什么意思( eclipse watch )

c++ - 在 C 或 C++ 中,我如何在没有回车或空格的情况下为程序提供输入

svn - 我应该使用什么插件将 TortoiseSVN 集成到 Windows 8 上的 Visual Studio 2012 中?

c++ - 在 Qt 中将 system() 与变量一起使用

c++ - 为 C++ 可执行文件提供变量作为 MATLAB 系统命令的输入参数