#include
#include
#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;
}
編寫一個程序,打開一個文本文件,文件名通過交互方式獲得。建立一個循環,請求用戶輸入一個文件位置。然後程序打印文件中從該位置開始到下一換行符之間的部分。用戶通過輸入非數字字符來終止輸入循環。
while循環裡的都是啥意思?row,column的作用??
while ( scanf("%d%d",&row,&column) == 2 )//讀入行、列2個值後進入循環,例如讀入4 3;讀入不是1個值就退出循環
{
row--,column--;//行列值各減1,為3 2
fseek(fp,0,SEEK_SET);//定位文件指針到開頭
while (row--) fgets(content,MAX,fp);//讀3行
fseek(fp,column,SEEK_CUR);//定位文件指針從當前位置後移2列
fgets(content,MAX,fp);//讀入從當前位置讀入1行
printf(content);//輸入讀入的內容
printf("input the start position to output:");
}