CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

逆序输入建立链表并从屏幕输出以及写入指定的文件(在线等)

楼主ishe(得义)2003-09-01 16:49:24 在 C/C++ / C语言 提问

我写了这段代码,vc++编译,链接正常,但输出不如人意请高人指点迷津,3~Q:  
  //整型,屏幕正确输出,不能文件写入  
  #include   <stdio.h>  
  #include   <io.h>  
  #include   <process.h>  
  #include   <iostream.h>  
  #include   <malloc.h>  
   
  typedef   struct   LNode  
  {  
  int   data;  
  struct   LNode   *next;  
  }LNode,*LinkList;  
   
  void   main()  
  {  
  //逆位序输入n个元素的值,建立带表头结点的单链线性表L.  
  FILE   *out;  
  char   outfile[10];  
  int   j;  
  int   i;  
  LNode   *L,*p,*h,*g;  
   
  printf("Enter   the   outfile   name:\n");  
  scanf("%s",outfile);  
  if((out=fopen(outfile,"w"))==NULL)  
  {  
  printf("cannot   open   outfile\n");  
  exit(0);  
  }  
   
  L=(LinkList)malloc(sizeof(LNode));  
  L->next=NULL;                                                             //先建立一个带表头结点的单链表  
  for   (i=5;i>0;--i)  
  {  
  p=(LinkList)malloc(sizeof(LNode));           //生成新结点  
  scanf("%d",&p->data);                                               //输入元素值  
  p->next=L->next;L->next=p;                           //插入到表头  
  }  
  h=L->next;                                                                   //保存表头  
  g=L->next;  
  for(i=1;i<=5;i++)  
  {  
   
  printf("%d\n",h->data);  
  h=h->next;  
  }  
  for(i=1;i<=5;i++)  
  {  
  j=g->data;  
  fputc(j,out);  
  fputc('\n',out);  
  g=g->next;  
   
  }  
   
  fclose(out);  
  }  
  =================================================================================+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
  //字符型,文件,屏幕都不能正确输出??????????????????????????faint  
  #include   <stdio.h>  
  #include   <io.h>  
  #include   <process.h>  
  #include   <iostream.h>  
  #include   <malloc.h>  
   
  typedef   struct   LNode  
  {  
  int   data;  
  struct   LNode   *next;  
  }LNode,*LinkList;  
   
  void   main()  
  {  
  //逆位序输入n个元素的值,建立带表头结点的单链线性表L.  
  FILE   *out;  
  char   outfile[10];  
  int   j;  
  int   i;  
  LNode   *L,*p,*h,*g;  
   
  printf("Enter   the   outfile   name:\n");  
  //j=getchar();//此语句用来接收在执行scanf语句时最后输入的回车符  
  scanf("%s",outfile);  
  if((out=fopen(outfile,"w"))==NULL)  
  {  
  printf("cannot   open   outfile\n");  
  exit(0);  
  }  
   
  L=(LinkList)malloc(sizeof(LNode));  
  L->next=NULL;                                                             //先建立一个带表头结点的单链表  
  for   (i=5;i>0;--i)  
  {  
  p=(LinkList)malloc(sizeof(LNode));           //生成新结点  
  scanf("%c",&p->data);                                               //输入元素值  
  p->next=L->next;L->next=p;                           //插入到表头  
   
  }  
  h=L;                                                                   //保存表头  
  g=L;  
  for(i=1;i<=5;i++)  
  {  
   
  printf("%c\n",L->data);  
  L=L->next;  
  }  
  for(i=1;i<=5;i++)  
  {  
  j=g->next->data;  
  fputc(j,out);  
  fputc('\n',out);  
  g=g->next;  
  问题点数:20、回复次数:3Top

1 楼syuui(syuui)回复于 2003-09-01 17:41:21 得分 0

输出是什么?Top

2 楼Dragon132(飞龙在天)回复于 2003-09-01 17:44:08 得分 0

这是第二个  
   
  #include   <stdio.h>  
  #include   <io.h>  
  #include   <process.h>  
  #include   <iostream.h>  
  #include   <malloc.h>  
   
  typedef   struct   LNode  
  {  
  int   data;  
  struct   LNode   *next;  
  }LNode,*LinkList;  
   
  void   main()  
  {  
  //逆位序输入n个元素的值,建立带表头结点的单链线性表L.  
  FILE   *out;  
  char   outfile[10];  
  int   j;  
  int   i;  
  LNode   *L,*p,*h,*g;  
   
  printf("Enter   the   outfile   name:\n");  
  //j=getchar();//此语句用来接收在执行scanf语句时最后输入的回车符  
  scanf("%s",outfile);                        
  j=getchar();                         //这里有个回车符,要接收  
  if((out=fopen(outfile,"w"))==NULL)  
  {  
  printf("cannot   open   outfile\n");  
  exit(0);  
  }  
   
  L=(LinkList)malloc(sizeof(LNode));  
  L->next=NULL;                                                             //先建立一个带表头结点的单链表  
  for   (i=5;i>0;--i)  
  {  
  p=(LinkList)malloc(sizeof(LNode));           //生成新结点  
  scanf("%c",&p->data);                                               //输入元素值  
  p->next=L->next;L->next=p;                           //插入到表头  
   
  }  
  h=L;                                                                   //保存表头  
  g=L;  
  L=L->next;                         //L->data为空,舍掉  
  for(i=1;i<=5;i++)  
  {  
   
  printf("%c\n",L->data);  
  L=L->next;  
  }  
  for(i=1;i<=5;i++)  
  {  
  j=g->data;  
  fputc(j,out);  
  fputc('\n',out);  
  g=g->next;  
  }  
  do  
  {  
  L=h;  
  h=h->next;  
  free(L);  
  }while(h!=NULL);  
   
   
  fclose(out);  
  }Top

3 楼Dragon132(飞龙在天)回复于 2003-09-01 17:46:35 得分 20

上面的还要加一句  
  #include   <stdio.h>  
  #include   <io.h>  
  #include   <process.h>  
  #include   <iostream.h>  
  #include   <malloc.h>  
   
  typedef   struct   LNode  
  {  
  int   data;  
  struct   LNode   *next;  
  }LNode,*LinkList;  
   
  void   main()  
  {  
  //逆位序输入n个元素的值,建立带表头结点的单链线性表L.  
  FILE   *out;  
  char   outfile[10];  
  int   j;  
  int   i;  
  LNode   *L,*p,*h,*g;  
   
  printf("Enter   the   outfile   name:\n");  
  //j=getchar();//此语句用来接收在执行scanf语句时最后输入的回车符  
  scanf("%s",outfile);  
  j=getchar();  
  if((out=fopen(outfile,"w"))==NULL)  
  {  
  printf("cannot   open   outfile\n");  
  exit(0);  
  }  
   
  L=(LinkList)malloc(sizeof(LNode));  
  L->next=NULL;                                                             //先建立一个带表头结点的单链表  
  for   (i=5;i>0;--i)  
  {  
  p=(LinkList)malloc(sizeof(LNode));           //生成新结点  
  scanf("%c",&p->data);                                               //输入元素值  
  p->next=L->next;L->next=p;                           //插入到表头  
   
  }  
  h=L;                                                                   //保存表头  
  g=L;  
  L=L->next;  
  for(i=1;i<=5;i++)  
  {  
   
  printf("%c\n",L->data);  
  L=L->next;  
  }  
  g=g->next;                           //这里也要舍掉第一个空数据  
  for(i=1;i<=5;i++)  
  {  
  j=g->data;  
  fputc(j,out);  
  fputc('\n',out);  
  g=g->next;  
  }  
  do  
  {  
  L=h;  
  h=h->next;  
  free(L);  
  }while(h!=NULL);  
   
   
  fclose(out);  
  }Top

相关问题

  • 句子的逆序输出
  • 如何逆序中文输出
  • 先头插法建表再逆序输出~~~出现的问题~
  • 输出时写入CSS文件
  • SQL*P1us输出结果写入文件
  • 在指定位置输出文本
  • 编写一个递归过程,它将读入的一数列以逆序输出。
  • 麻烦看看我的链表创建和逆序输出问题出在哪里???????????????
  • 写入新闻时加密 输出时解密
  • 关于二进制的覆盖写入到指定地址!

关键词

  • 结点
  • 语句
  • 屏幕
  • 文件
  • lnode
  • outfile
  • 表头
  • linklist
  • fputc
  • next

得分解答快速导航

  • 帖主:ishe
  • Dragon132

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo