| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:那位大神帮我看看啊!!到底哪错了
只看楼主 加入收藏
luxiaoke654
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-5-26
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
那位大神帮我看看啊!!到底哪错了
目前只能选1这个选项,,
问题:路径好像传不到   shuruname();这个函数的fopen();里面,文件建不了;但是road+ shuruname就能建文件了,
我现在很纠结啊!!!拿什么拯救我,,大神们

大神们要是能的话帮我把这个程序补全把!!!我会很感谢你们的,,


int road()        //写路径函数
{   
   int i,j;
   int n;
   char *st01="e:\\欠款人具体信息";
   char *st02="e:\\欠款\\";
   char st1[60],st2[30];
   printf("1--记录人的欠款信息,2--记录人的欠款信息;\n");
   printf(" 1--aboutpeople欠款信息 : \n");
   printf(" 2--aboutmoney欠款: \n");
   scanf("%d",&n);
   switch(n)
       {
             case 1:
                 strcpy(st1,st01);
                   break;
          case 2:
              strcpy(st1,st02);
                   break;
       }
  
    printf("请输入人的姓名:\n");
    scanf("%s",st2);

    for(j=0;st1[j]!='\0';)
           j++;
    for(i=0;st2[i]!='\0';i=i+1)
        st1[j+i]=st2[i];
   
    st1[j+i]='\0';
    printf("\naddress:\n");
    printf("%s",st1);
    return st;
 }
  


        int shuruname()             //输入函数      这个函数调用上边的写路径的函数
    {  
     char st1[60];
     char thing[200];   
     int n1;
     FILE *fp;
     road();            ************************************************这个地方好像有错,是不是st1[]的值没给这个st1
     fp=fopen(st1,"wt+");
      if(fp==NULL)
       {
         printf("Open file error,press any key exit!\n");   
            exit(0);
       }
        chongxin:               //goto  跳转的地方
  
    printf("输入欠款人的信息:\n");
        scanf("%s",thing);
         fputs(thing,fp);
         
    printf("\n\n你否输入完成补充请按1,bushi按0\n");
    scanf("%d",&n1);
    switch(n1)
         {
            case 0:break;
            case 1: goto chongxin;break;
          }   
  fclose(fp);
  return 0;
}   





                                             下面的可以不用看,是让你们了解函数的位置,方便修改


#include "stdio.h"
#include"stdlib.h"
#include "string.h"
int road();         //输入路径的函数
int shuruname();       //输入函数

void chazhao();

void main()
{       int num1;
    printf("****************************************************************\n");
    printf("****************************************************************\n");
    printf("                         欢迎您进入系统                         \n");
    printf("****************************************************************\n");
    printf("****************************************************************\n");

           printf("请按要求选择:\n");
              printf("1--记录欠款人具体欠款信息\n");
              printf("2--记录欠款人所欠货物价格及数量\n");
              printf("3--查看某人具体欠款信息\n");
              printf("3--计算某人所欠货物总价格\n");
              printf("4--退出系统\n");
   
    scanf("%d",&num1);
    switch(num1)
       { case 1:
              shuruname();
              break;
         case 2:
            
              break;
         case 3:
              chazhao();
               break;
         case 4:
              break;
       }
      
}

int road()        //写路径函数
{   
   int i,j;
   int n;
   char *st01="e:\\欠款人具体信息";
   char *st02="e:\\欠款\\";
   char st1[60],st2[30];
   printf("1--记录人的欠款信息,2--记录人的欠款信息;\n");
   printf(" 1--aboutpeople欠款信息 : \n");
   printf(" 2--aboutmoney欠款: \n");
   scanf("%d",&n);
   switch(n)
       {
             case 1:
                 strcpy(st1,st01);
                   break;
          case 2:
              strcpy(st1,st02);
                   break;
       }
  
    printf("请输入人的姓名:\n");
    scanf("%s",st2);

    for(j=0;st1[j]!='\0';)
           j++;
    for(i=0;st2[i]!='\0';i=i+1)
        st1[j+i]=st2[i];
   
    st1[j+i]='\0';
    printf("\naddress:\n");
    printf("%s",st1);
    return st;
 }
   int shuruname()             //查看函数
   {  
    char st[60];
    char thing[200];   
    int n1;
    FILE *fp;
    road(st);
    fp=fopen(st,"wt+");
      if(fp==NULL)
       {
         printf("Open file error,press any key exit!\n");   
            exit(0);
       }
        chongxin:               //goto  跳转的地方
  
    printf("输入欠款人的信息:\n");
        scanf("%s",thing);
         fputs(thing,fp);
         
    printf("\n\n你否输入完成补充请按1,bushi按0\n");
    scanf("%d",&n1);
    switch(n1)
         {
            case 0:break;
            case 1: goto chongxin;break;
          }   
  fclose(fp);
  return 0;
}   
    void chazhao()                 //查看文件里的东西
     {
        
        FILE*fp2;
         char st1[60];
            
             road();
             fp2=fopen(st1,"rt");
              if(fp2==NULL)
              {
             printf("Open file error,press any key exit!\n");   
            exit(0);
              }
              
              while(!feof(fp2))
         {
              putchar(fgetc(fp2));
          }
         printf("\n\n显示完毕\n");
        
         
         fclose(fp2);
      
 }

[ 本帖最后由 luxiaoke654 于 2013-9-4 10:51 编辑 ]
搜索更多相关主题的帖子: 记录 信息 
2013-09-03 23:45
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
是自己写的吗  
这么长 谁有工夫给你调试啊

DO IT YOURSELF !
2013-09-04 08:04
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
收藏
得分:4 
这么长的程序没时间看啊,你能不能简化一下啊。

武功再高也怕菜刀.
2013-09-04 10:01
luxiaoke654
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-5-26
收藏
得分:0 
其实就上面的两个函数,,第二个函数调用第一个谢路径的函数的时候好像没吧路径传给第二个函数下面的就是让你们看一下他们的位置,大哥大姐帮忙看看啊
2013-09-04 10:49
youngdavid
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:698
注 册:2012-9-24
收藏
得分:4 
楼主int road()函数有问题,这里面并未对st进行操作。
2013-09-08 19:17
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:4 
好长的代码,楼主可以适当简化一下,这样可以明确重点

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-09-10 19:46
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:4 
road函数中,最后返回的st是未定义的。

road函数声明的时候是无形参的,但是在shuruname函数中有用到road(st)

上面两个问题是编译器查出的,我看楼主开头贴的load函数和shuruname函数是正确的,我不知道这是为什么。。。。。。

Edsger Dijkstra:算法+数据结构=程序
2013-09-10 21:57
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
收藏
得分:4 
楼主大人,你如果想在  shuruname()子函数里,使用在road()子函数的数组st1[60],请你将数组定义成全局变量。

先弄明白全局变量/局部变量的作用域吧。  像这种已经自己有怀疑的情况,要想办法自己验证,你可以在shuruname()子函数里,把数组里面的值打印出来,看是不是自己想要的东东,当然使用调试也是可以的,不过针对你代码的水平,还是不勉强你了!

至于有没有其他问题,等你先解决这个问题再自己调试吧!

好好学习,天天向上~~~~~~~~~~~
2013-09-10 22:52
快速回复:那位大神帮我看看啊!!到底哪错了
数据加载中...
 
   



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

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