#include<stdio.h> int main() { FILE *f1; char name[20]; int offset; long n; printf("please enter the name of the file:\n"); scanf("%s",name); printf("please enter a number as offset:\n"); scanf("%d",&offset); f1 = fopen(name,"r+"); if(f1 == NULL) { printf("FILE OPEN ERROR!\n"); } fseek(f1,offset,SEEK_SET); char ch; while(feof(f1)==0) { ch = fgetc(f1); printf("%c\n",ch); fseek(f1,1L,SEEK_CUR); } fclose(f1); return 0; } 请改进以上代码
时间: 2024-01-17 18:05:04 浏览: 51
以下是改进后的代码:
```c
#include <stdio.h>
int main() {
FILE *f1;
char name[20];
int offset;
long n;
printf("Please enter the name of the file: ");
scanf("%s", name);
printf("Please enter a number as offset: ");
scanf("%d", &offset);
f1 = fopen(name, "r");
if (f1 == NULL) {
printf("File open error!\n");
return 1;
}
fseek(f1, offset, SEEK_SET); // 定位到指定偏移量
char ch;
while ((ch = fgetc(f1)) != EOF) { // 逐个读取字符并输出
printf("%c", ch);
}
fclose(f1);
return 0;
}
```
改进说明:
1. fopen函数使用只读模式打开文件,因为在输出文件内容时只需要读取文件内容而不需要修改。
2. 在读取文件内容时,使用fgetc函数逐个读取字符并输出,直到文件结尾。
3. 修改了文件打开失败时的错误提示信息。
4. 添加了返回值1以表示程序执行失败。
阅读全文