c语言怎样改变文档位置 - 爱问答

(爱问答)

c语言怎样改变文档位置

比如说我用fopen函数打开了一个txt文件,现在要切换位置到第八行,我该怎么做?

使用read每次读取一个student结构体,判断id是否相等,如果相等则重新赋值,文件偏移量后退sizeof(student)大小,写入新结构体即可。read读文件时,文件偏移是随时更新的,所以要从当前位置后退一个结构体大小。lseek的用法:

1off_t lseek(int handle, off_t offset, int fromwhere);

handel:文件描述符,open的返回值offset:偏移大小,正数向后偏移,负数向前偏移fromwhere:偏移的起始点,系统变量:SEEK_CUR(当前)、SEEK_SET(文件头)、SEEK_END(文件尾)当然用fseek也可以,这里我就不写了,对应的是:fopen、fread、fwrite、fseek


fgets()函数每次最多读取一行数据,若是到达行尾就会停止读取,并换行。

而文本文档里一行50个字符左右

则有

for(int i=0;i<9;i++)

{fgets(NULL,101,*fp)//请自己将*fp更换为当前的文件指针}

通过设置目标文件路径,可以改变文件的存放位置。
1、c语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的c语言教程都有文件操作一章,可以找本教材进一步学习。
2、例程:
#include<stdio.h>
int a;
char b,c[100];
int main(){
    FILE * fp1 = fopen("input.txt", "r");//打开输入文件
    FILE * fp2 = fopen("output.txt", "w");//打开输出文件
    if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
        puts("不能打开文件!");
        rturn 0;
    }
    fscanf(fp1,"%d",&a);//从输入文件读取一个整数
    b=fgetc(fp1);//从输入文件读取一个字符
    fgets(c,100,fp1);//从输入文件读取一行字符串
    printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
    fputs(c,fp2);//向输出文件写入一行字符串
    fputc(b,fp2);//向输出文件写入一个字符
    fprintf(fp2,"%d",a);//向输出文件写入一个整数
    fclose(fp1);//关闭输入文件
    fclose(fp2);//关闭输出文件,相当于保存
    return 0;
}


相关标签:c语言

下一篇:如何回答问题?

上一篇:excel图表里实际值大于目标值时,结点怎么自动标红

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?