| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 552 人关注过本帖, 1 人收藏
标题:C语言文件问题
只看楼主 加入收藏
sdy不懂
Rank: 1
等 级:新手上路
帖 子:19
专家分:1
注 册:2012-2-22
结帖率:100%
收藏(1)
 问题点数:0 回复次数:8 
C语言文件问题
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>

#define LENGTH 80

int main()
{
  char *proverbs[]=
       {"Many a mickle makes a muckle.\n",
        "Too many cooks spoil the broth.\n",
        "He who laughs last didn't get the joke in"
        "the first place.\n"
       };
  char more[LENGTH];
  FILE *pfile=NULL;
  char *filename="C:\\myfile.txt";

  if(!(pfile=fopen(filename,"w")))
  {
    printf("Enter opening %s for writing.Program terminated.",filename);
    exit(1);
  }

  int count=sizeof proverbs/sizeof proverbs[0];      这句是什么意思,看不懂这句话在这里的用意。
  for(int i=0;i<count;i++)
    fputs(proverbs[i],pfile);

  fclose(pfile);

  if(!(pfile=fopen(filename,"a")))
  {
    printf("Enter opening %s for writing.Program terminated.",filename);
    exit(1);
  }

  printf("Enter proverbs of less than 80 character or press Enter to end:\n");
  while(true)                    这句话在这里是不是有点多余了,上面的if语句不是已经判断过了吗?
  {
    fgets(more,LENGTH,stdin);

    if(more[0]=='\n')
     break;
    fputs(more,pfile);
  }

  fcolse(pfile);

  if(!(pfile=fopen(filename,"r")))
  {
    printf("Enter opening %s for writing.Program terminated.",filename);
    exit(1);
  }

  printf("The proverbs in the file are:\n\n");
  while(fgets(more,LENGTH,pfile))
   printf("%s",more);

  fclose(pfile);
  remove(filename);
  return 0;
}


搜索更多相关主题的帖子: C语言 include Enter 
2012-06-03 12:03
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
sizeof proverbs/sizeof proverbs[0]; 这句是计算数组的元素个数,用数组元素总大小去除第一个元素大小就会得到数组元素个数。c中的常用手法。
其它的自己读程序理解吧。

我们都在路上。。。。。
2012-06-03 13:20
sdy不懂
Rank: 1
等 级:新手上路
帖 子:19
专家分:1
注 册:2012-2-22
收藏
得分:0 
上面的while(true)是对什么判断的,它是当什么为真时,就执行下面的语句。
2012-06-03 23:21
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
永远为真(true)。得靠里面的 break 跳出这个循环。
2012-06-03 23:46
sdy不懂
Rank: 1
等 级:新手上路
帖 子:19
专家分:1
注 册:2012-2-22
收藏
得分:0 
还不是太懂,是什么为真,能再说明白点吗?谢谢
2012-06-03 23:57
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3452
专家分:19340
注 册:2012-3-31
收藏
得分:0 

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-06-04 12:04
sdy不懂
Rank: 1
等 级:新手上路
帖 子:19
专家分:1
注 册:2012-2-22
收藏
得分:0 
while(true)                    
  {
    fgets(more,LENGTH,stdin);

    if(more[0]=='\n')
     break;
    fputs(more,pfile);
  }

while(true)是对什么做出判断的,当什么为真时,才执行下面的语句啊!
2012-06-04 12:08
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
while (true) 相当于 for(;;) 这么说能明白吗?一般写成 for(;;) 的感觉更多一点。
2012-06-04 20:13
sdy不懂
Rank: 1
等 级:新手上路
帖 子:19
专家分:1
注 册:2012-2-22
收藏
得分:0 
明白了,谢谢
2012-06-04 20:28
快速回复:C语言文件问题
数据加载中...
 
   



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

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