Linux下文件操作,打开一个文件并修改文件后5个字符为abcde
来源:互联网 发布:爱国治民能无知乎 编辑:程序博客网 时间:2024/06/06 10:52
编写一个小程序,实现如下功能:
l 打开一个文本文件(纯ascii码构成,字符个数大于5)
l 输出文件的总行数
l 通过写文件操作将此文件的最后5个字符替换为“abcde”
#include <stdio.h>
#include <unistd.h>#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <ucontext.h>
#define BUF_LEN 128 /*缓冲区长度*/
#define REPLACE_STR "abcde" /*替换的字符串*/
int main(int argc, char *argv[])
{
FILE *fp ;
char buf[BUF_LEN]={0};
char bufTemp[BUF_LEN]={0};
char modifyBuf[BUF_LEN]=REPLACE_STR;
int lineCnt = 0; /*文件行数初始化为0*/
int writeFlag=0; /*文件写标志位初始值为0*/
int sumstrLength=0;
fp= fopen("homework.txt", "r+"); /*以读写方式打开文件*/
if(NULL==fp)
{
fprintf(stderr,"failed open the file\n"); /*提示打开文件失败*/
return -1;
}
else
{
while (fgets(buf, BUF_LEN, fp)) /*fgets循环读取,直到文件最后,才会返回NULL*/
{
lineCnt++; /*统计文件行数*/
sumstrLength+=strlen(buf);
}
printf("lineCnt= %d\n\n", lineCnt); /*打印总行数*/
if((sumstrLength>=5) && (0==strcmp(modifyBuf,"abcde")) && (0==writeFlag)) /*文本内容长度大于5,写入的内容为abcde,且未执行过写操作,执行替换操作*/
{
fseek(fp, -(strlen(modifyBuf)+1), SEEK_END); /*移动文件指针到待写入的位置*/
fprintf(fp, "%s", modifyBuf); /*写入数据*/
writeFlag=1;
fprintf(stdout,"Have replaced successfully!\n\n");
}
else
{
if(sumstrLength<5)
{
fprintf(stderr,"The length of content is less 5!!\n\n"); /*内容长度小于5时,给出错误提示*/
}
else
{
;
}
if(0!=strcmp(modifyBuf,"abcde"))
{
fprintf(stderr,"The replacing string is not the abcde!!\n\n");/*替换的字符串不是abcde时,给出错误提示*/
}
else
{
;
}
if(1==writeFlag)
{
fprintf(stderr,"The file can be modified only only one time!!\n\n");/*写操作次数大于1时给出错误提示*/
}
else
{
;
}
}
fclose(fp);
}
return 0;
}
阅读全文
0 0
- Linux下文件操作,打开一个文件并修改文件后5个字符为abcde
- 解决Linux系统下文件的乱码 (如何在linux下修改文件字符编码)
- linux下文件一个操作代码
- linux字符设备文件的打开操作
- linux字符设备文件的打开操作
- linux下文件操作
- Linux 下文件操作
- Linux下文件操作
- linux下文件操作
- linux下文件操作
- Linux 下文件操作
- Linux下文件操作
- Linux下文件操作
- Linux下文件操作
- 编写一个程序,它打开一个文本文件,逐个字符地读取该文件,直到到达文件末尾,然后指出该文件中包含多少个字符
- linux程序设计入门--文件操作:linux下文件的操作
- Linux 下文件描述符和打开文件之间的关系
- 修改linux文件最大进程数和文件打开数
- (41)异常编程练习:①搜索一个字符数组中是否存在某个字符②判断哪个圆半径大,返回值是圆
- USACO-Section1.5 sprime[深搜]
- css3 pipe
- Mysql学习历程(16)-数据备份与还原
- Dubbo性能优化
- Linux下文件操作,打开一个文件并修改文件后5个字符为abcde
- java8有哪些经典java课程里未曾提及的东西?
- 2.Java基础语法(1)
- WebSocket(协议)
- Plot sound wave
- 替换空格
- tomcat之catalina使用Digester解析XML配置文件
- linux mktime函数用法
- Git学习笔记-远程仓库-ls-remote命令