| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 377 人关注过本帖
标题:语句作用问题
只看楼主 加入收藏
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
结帖率:86.96%
收藏
已结贴  问题点数:19 回复次数:2 
语句作用问题
(红字是重点)下面是题目:
10.编写一个程序,打开一个文本文件,文件名通过交互方式获得。建立一个循环,请求用户输入一个文件位置。然后程序打印文件中从该位置开始到下一换行符之间的部分。用户通过输入非数字字符来终止输入循环。
#include <stdio.h>
#include <stdlib.h>
#define MAX 81

int main(void)

{
 char name[30],content[MAX];
 int row,column;
    FILE *fp;
 printf("input the name of file:");
 gets(name);
 if(  ( fp=fopen(name,"r") )   == NULL   )
 {
  printf("Can't open %s",name);
  exit(1);
 }
 printf("input the row and column to output:");
 while ( scanf("%d%d",&row,&column) == 2 )
 {
  row--,column--;
  fseek(fp,0,SEEK_SET);
  while (row--)
  fgets(content,MAX,fp);//
简便起见,未做一些越界判断
  fseek(fp,column,SEEK_CUR);
  fgets(content,MAX,fp);
  printf(content);
  printf("input the start position to output:");
 }
 printf("Quit\n");

    return 0;
}


按照题意,row应该是行数,而红字部分的语句,不就是直到row等于0前,把大小为max的字符从文件中读出然后储存在content数组中,这样做怎得到当前位置呀.求详细
搜索更多相关主题的帖子: 换行符 include 文本文件 
2011-08-24 11:48
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:19 
楼主理解正确,这条 while 语句执行完后,文件游标已经指向第 row 行的第一列了。

注意你的缩进,while 的循环体只有那一句 fgets(content,MAX,fp); 而已
2011-08-24 14:24
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
收藏
得分:0 
回复 2楼 voidx
我刚刚瞎狗眼了,row在红字部分的意思并不是行数,而是次数,是表示从文件中读出max个字符这一行为的次数,朝这么运行的话,确实可以把文件的内部位置指针移动到想要输出的行上.
2011-08-24 16:54
快速回复:语句作用问题
数据加载中...
 
   



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

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