| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2382 人关注过本帖
标题:求问这个源程序要读取的文件应该放在哪
只看楼主 加入收藏
白夜丿茶会
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-2-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
求问这个源程序要读取的文件应该放在哪
#include"stdio.h"
#include <stdlib.h>
#include"string.h"
#define header1 "|--------------电话簿------------------|\n"
#define header2 "|   name   |    phonenum    |  adress  | \n"
#define header3 "|----------|----------------|----------|\n"
#define end "|-----------------结束------------------|"
typedef struct _CStudent
{
        char szName[20];          /* 学生姓名 */
        double number;            /*电话*/
        char adress[100];        /*地址*/
}CStudent;
void menu();
int duqu(int *len);
int zengjia(int *k,int *len);
int chaxun(int *len);
int xiugai(int *len);
int shanchu(int *len);
int input(CStudent* p);   /* 从键盘输入 */
int output(int *len);   /* 向屏幕输出 */
int search(CStudent p,int *j,CStudent c[3],int *len);   
int sname(CStudent p,int *len);        /*姓名查询*/
int snumber(CStudent p,int *len);    /*电话查询*/
void xname(CStudent q[100],int i);    /*姓名修改*/
void xnumber(CStudent q[100],int i);    /*号码修改*/
void xadress(CStudent q[100],int i);    /*地址修改*/        
int sput(int *len,CStudent q[100]);/*删除的处理模块*/
main( )
{
    static int len=0;
    int i,j=0,k=0;
    while(j==0)
    {
        menu();
    do
    {
        printf("请选择你需要的服务:\n");
            scanf("%d",&i);
    }
    while(i<0||i>5);
        switch(i)
    {
    case 1:{j=zengjia(&k,&len);break;}/*增加*/
    case 2:{j=duqu(&len);break;}        /*读取*/
    case 3:{j=chaxun(&len);break;}        /*查找*/
    case 4:{j=xiugai(&len);break;}    /*修改*/
    case 5:{j=shanchu(&len);break;}/*删除*/
    default:{printf("         |**欢迎下次使用电话薄管理系统!**|\n");j=1;break;}
    }
    }
}
void menu()
{
    system("cls");
    system("color 1F");
    printf("\n\n\n");                /*输出主菜单*/
    printf("\t\t|*   ****   欢迎进入电话薄管理系统!  ****   *|\n");
    printf("\t\t|********************menu********************|\n");
    printf("\t\t|                                            |\n");
    printf("\t\t|       1 增加       2 读取                  |\n");
    printf("\t\t|                                            |\n");
    printf("\t\t|       3 查找       4 修改                  |\n");
    printf("\t\t|                                            |\n");
    printf("\t\t|       5 删除       0 退出                  |\n");
    printf("\t\t|                                            |\n");
    printf("\t\t|********************************************|\n");
}
int output(int *len)    /*向屏幕输出*/
{
    CStudent p[100];
    int i;
    FILE *fp;
    if((fp=fopen("e://file3","r"))==NULL)
    {
        printf("error!\n");
            return -1;
    }
    printf("%s%s%s",header1,header2,header3);
    for(i=0;i<*len;i++)
    {        
        fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);
        printf("| %s | %.0lf | %s |\n",p[i].szName,p[i].number,p[i].adress);
         }
    printf("%s",end);  
        printf("\n");
        system("pause");
        return 0;
}
int zengjia(int *k,int *len)
{
    CStudent p[100];
    int i,j;
    FILE *fp;
system("cls");
    printf("\n\t\t|*****   欢迎进入删除联系人界面!  *****|\n\n");
    printf("请输入增加的个数:\n");
    scanf("%d",&j);
    k=&j;
    (*len)+=j;
    //system("cls");
    if((fp=fopen("e://file3","a+"))==NULL)
    {
        printf("error!\n");
            return -1;
    }
            for(i=0;i<j;i++)
    {
        printf("姓名:");
            scanf("%s",&p[i].szName);
            printf("电话:");
            scanf("%lf",&p[i].number);
            printf("地址:");
            scanf("%s",p[i].adress);
            }
            for(i=0;i<j;i++)
            fprintf(fp,"\n%s %lf %s ",p[i].szName,p[i].number,p[i].adress);
            fclose(fp);
            system("cls");
            output(len);
            return 0;
}
int chaxun(int *len)
{
    int i;
    CStudent aa,cc;
    system("cls");
    printf("\n\t\t|*****   欢迎进入删除联系人界面!  *****|\n\n");
    do
    {
        printf("            |-------查找功能------|\n");
        printf("            |                     |\n");
        printf("            |  1 按电话号码查找   |\n");
        printf("            |                     |\n");
        printf("            |     2 按姓名查找    |\n");
        printf("            |                     |\n");
        printf("            |      0 退出         |\n");
        printf("            |                     |\n");
    printf("请输入:\n");
    scanf("%d",&i);
    }
    while(i>2||i<0);
    if(i==2)
    {
        printf("请输入姓名:\n");
        scanf("%s",&aa.szName);
        sname(aa,len);
    }
    else if(i==1)
    {
        printf("请输入号码:\n");
        scanf("%lf",&cc.number);
        snumber(cc,len);
    }
    else
        printf("欢迎下次使用电话薄管理系统!\n");
            return 0;
}
int sname(CStudent p,int *len)
{
   
    CStudent c[100];
    int i,flag;
    flag=search(p,&i,c,len);
    if (flag==1)
    {
        printf("%s%s%s",header1,header2,header3);
        printf("| %s | %.0lf | %s |\n",c[i].szName,c[i].number,c[i].adress);
        printf("%s",end);  
        printf("\n");
    }
       else
       printf("Not Found\n");
        system("pause");
return 0;

}
int snumber(CStudent p,int *len)
{
    CStudent c[100];
    int i,flag;
    flag=search(p,&i,c,len);
    if (flag==2)
    {
        printf("%s%s%s",header1,header2,header3);
        printf("| %s | %.0lf | %s |\n",c[i].szName,c[i].number,c[i].adress);
        printf("%s",end);  
        printf("\n");
    }
       else
       printf("Not Found\n");
         system("pause");
return 0;
}
search(CStudent p,int *j,CStudent c[100],int *len)            /*查询*/
{
    FILE *fp;
    int i,flag=0;

    if((fp=fopen("e:\\file3","r"))==NULL)
    {
        printf("cannot  write file\n");
        return -1;
    }

    for(i=0;i<*len;i++)
    {
        fscanf(fp,"%s%lf%s",c[i].szName,&c[i].number,c[i].adress);
        if(strcmp(c[i].szName,p.szName)==0)
        {flag=1;break;}
        if(c[i].number==p.number)
        {flag=2;break;}
    }
    *j=i;
    fclose(fp);
    return flag;
}
int xiugai(int *len)
{
    CStudent p[100],q[100],a;
    int i,j,b;
    FILE *fp;
    system("cls");
    printf("\n\t\t|*   ****   欢迎进入修改联系人界面!  ****   *|\n\n");
    printf("请输入修改人的姓名:\n");
    scanf("%s",a.szName);
    if((fp=fopen("e://file3","r+"))==NULL)
    {
        printf("error!\n");
            return -1;
    }
    for(i=0;i<*len;i++)
        fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);
    for(i=0;i<*len;i++)
    {
        strcpy(q[i].szName,p[i].szName);
        strcpy(q[i].adress,p[i].adress);
        q[i].number=p[i].number;}
        for(i=0;i<*len;i++)
        {
            
            if(strcmp(p[i].szName,a.szName)==0)
            {
                j=1;
                break;
            }
        }
        if(j==1)
            {
                printf("            |-------修改功能------|\n");
                printf("            |                     |\n");
                printf("            |     1 修改姓名      |\n");
                printf("            |                     |\n");
                printf("            |     2 修改号码      |\n");
                printf("            |                     |\n");
                printf("            |     3 修改地址      |\n");
                printf("            |                     |\n");

            do
            {
                printf("请输入:\n");
                scanf("%d",&b);
            if(b==1)
            xname(q,i);
             if(b==2)
            xnumber(q,i);
            if(b==3)
            xadress(q,i);}
            while(b>3||b<1);
        printf("修改的联系人重新保存!\n");
        sput(len,q);
        }
        else
        {
            printf("            |*****通讯录中没有该人的信息!******|\n");
            system("pause");
        }
        fclose(fp);
        output(len);
            return 0;
}
int sput(int *len,CStudent q[100])
{
    int i;
    FILE *fp;
        if((fp=fopen("e://file3","w"))==NULL)
    {
        printf("error!\n");
            return -1;
    }
        for(i=0;i<*len;i++)
            fprintf(fp,"%s %lf %s ",q[i].szName,q[i].number,q[i].adress);
        fclose(fp);
        return 0;
}
void xname(CStudent q[100],int i)
{

    printf("姓名重置:");
    scanf("%s",q[i].szName);
}
    void xnumber(CStudent q[100],int i)   
{
    printf("电话重置:");
    scanf("%lf",&q[i].number);
}
    void xadress(CStudent q[100],int i)    /*地址修改*/
{
    printf("地址重置:");
    scanf("%s",q[i].adress);
}
   
    int shanchu(int *len)
{
    CStudent p[100],q[100],a;
    int i,j;
    FILE *fp;
system("cls");
    printf("\n\t\t|*****   欢迎进入删除联系人界面!  *****|\n\n");
    printf("请输入删除人的姓名:\n");
    scanf("%s",a.szName);
    if((fp=fopen("e://file3","r+"))==NULL)
    {
        printf("error!\n");
            return -1;
    }
    for(i=0;i<*len;i++)
        fscanf(fp,"%s%lf%s",p[i].szName,&p[i].number,p[i].adress);
    for(i=0;i<*len;i++)
    {
        strcpy(q[i].szName,p[i].szName);
        strcpy(q[i].adress,p[i].adress);
        q[i].number=p[i].number;}
        for(i=0;i<*len;i++)
        {
            
            if(strcmp(p[i].szName,a.szName)==0)
            {
                j=1;
                break;
            }
        }
        if(j==1)
            {
            for(;i<*len-1;i++)
            {
                strcpy(q[i].szName,q[i+1].szName);
                strcpy(q[i].adress,p[i].adress);
                q[i].number=q[i+1].number;
            }
                printf("删除成功!\n");
   
        (*len)--;
        sput(len,q);
        for(i=0;i<*len;i++)
            fscanf(fp,"%s%lf%s",q[i].szName,&q[i].number,q[i].adress);
            output(len);
        }
        else
        printf("            |*****通讯录中没有该人的信息!******|\n");
        fclose(fp);
            return 0;
}
执行时显示--------------------Configuration: TXL - Win32 Debug--------------------
Linking...
TXL.obj : error LNK2001: unresolved external symbol _duqu
Debug/TXL.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

TXL.exe - 1 error(s), 0 warning(s)
搜索更多相关主题的帖子: number int printf scanf return 
2019-02-17 15:38
ZJYTY
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:92
专家分:700
注 册:2018-12-20
收藏
得分:10 
程序代码:
search(CStudent p,int *j,CStudent c[100],int *len)            /*查询*/
{
    FILE *fp;
    int i,flag=0;

    if((fp=fopen("e:\\file3","r"))==NULL)
    {
        printf("cannot  write file\n");
        return -1;
    }

    for(i=0;i<*len;i++)
    {
        fscanf(fp,"%s%lf%s",c[i].szName,&c[i].number,c[i].adress);
        if(strcmp(c[i].szName,p.szName)==0)
        {flag=1;break;}
        if(c[i].number==p.number)
        {flag=2;break;}
    }
    *j=i;
    fclose(fp);
    return flag;
}


这个函数里fopen函数,e:\\file3。

-------------------------------若有不当之处,敬请谅解-------------------------------
2019-02-17 15:40
白夜丿茶会
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-2-17
收藏
得分:0 
回复 2楼 ZJYTY
是在E盘建一个名为file3的文件夹是吗
2019-02-17 15:43
白夜丿茶会
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-2-17
收藏
得分:0 
回复 2楼 ZJYTY
--------------------Configuration: TXL - Win32 Debug--------------------
Linking...
TXL.obj : error LNK2001: unresolved external symbol _duqu
Debug/TXL.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

TXL.exe - 1 error(s), 0 warning(s)
执行出现这个错误是什么意思呢
2019-02-17 15:46
ZJYTY
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:92
专家分:700
注 册:2018-12-20
收藏
得分:0 
回复 4楼 白夜丿茶会
对的,E盘的file3文件。

至于那个错误,自己仔细核对一下函数声明与定义是否一致,函数都要有返回类型,例如search()函数和main()函数。


这是哪里来的代码?你自己写的吗?

[此贴子已经被作者于2019-2-17 17:52编辑过]


-------------------------------若有不当之处,敬请谅解-------------------------------
2019-02-17 17:47
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
收藏
得分:10 
if((fp=fopen("e://file3","r+"))==NULL)这样写是错的用 "  \\"
if((fp=fopen("e:\\file3.txt","r+"))==NULL)这样写才正确
而且要在e盘里有file3.txt这个文件。



[此贴子已经被作者于2019-2-17 22:29编辑过]


我是硬件工程师
2019-02-17 22:20
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
收藏
得分:0 
--------------------Configuration: TXL - Win32 Debug--------------------
Linking...
TXL.obj : error LNK2001: unresolved external symbol _duqu
Debug/TXL.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

TXL.exe - 1 error(s), 0 warning(s)
执行出现这个错误是什么意思呢

这是因为这段代码没有_duqu的函数定义

我是硬件工程师
2019-02-17 22:42
快速回复:求问这个源程序要读取的文件应该放在哪
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025088 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved