linux 系统中用C语言实现txt 文本文档插入任意行。
具体要求是,在txt中任意行插入任意字符或字符串。在linux中编译./a.out1.txtabc3意思是在1.txt中第3行插入abc,原来的第3行就变成了第4行答案是...
具体要求是,在txt 中任意行插入任意字符或字符串。在linux 中编译./a.out 1.txt abc 3
意思是在1.txt 中第3行插入abc ,原来的第3行就变成了第4行
答案是无赖 展开
意思是在1.txt 中第3行插入abc ,原来的第3行就变成了第4行
答案是无赖 展开
2个回答
2013-07-12
展开全部
要用到文件操作命令咯 而且对文本文件还要进行相应的文本操作 比如你知道每行标志吧? \n 或者\r\n 还有\r 3种好像 比如windows的txt是\r\n为换行的吧 linux是什么我忘了 你查查看
下面是流程
打开文件 命令: fopen
读入文件到变量buff 命令: fread
找到的位置 = 查找文本(buff, 常量:换行符, 欲插入的行数, &实际返回的行数) //这个函数就是一个循环遍历计数换行符的位置 找到对应行的时候则返回字节位置
if(实际返回的行数!=欲插入的行数) //这情况比如 有1行文本 要插入第3行 最后返回2
{
设置文件指针位置 命令: fseek(忘了好像是这个)
int c = 欲插入的行数 - 实际返回的行数;
for(int i=0; i<c; i++)
{
写出一个换行符 命令: fwrite //
}
}
//此时位置定好了
输出你需要输出的文本就OK了 命令: fwrite
最后关闭文件 命令: fclose
补充 可能你会先读取文件的大小 然后动态分配内存以保证内存不大不小的浪费 最后记的释放内存空间哦. 还有这个思路是临时写的 也不清楚有什么漏洞 你顺便锻炼锻炼自己吧. 我都不清楚是不是有哪步骤想错呢. 这个不难的呢. 加油!
可是我不是Linux系统 我用Windows系统写吧 代码差异不大 你是Linux系统吧? 先说清楚 因为换行标志可能不一样
百度hi 里面 我发我QQ 你加下吧 我写完你还要运行看看 那先手机QQ加我吧
我对谁很无奈?
下面是流程
打开文件 命令: fopen
读入文件到变量buff 命令: fread
找到的位置 = 查找文本(buff, 常量:换行符, 欲插入的行数, &实际返回的行数) //这个函数就是一个循环遍历计数换行符的位置 找到对应行的时候则返回字节位置
if(实际返回的行数!=欲插入的行数) //这情况比如 有1行文本 要插入第3行 最后返回2
{
设置文件指针位置 命令: fseek(忘了好像是这个)
int c = 欲插入的行数 - 实际返回的行数;
for(int i=0; i<c; i++)
{
写出一个换行符 命令: fwrite //
}
}
//此时位置定好了
输出你需要输出的文本就OK了 命令: fwrite
最后关闭文件 命令: fclose
补充 可能你会先读取文件的大小 然后动态分配内存以保证内存不大不小的浪费 最后记的释放内存空间哦. 还有这个思路是临时写的 也不清楚有什么漏洞 你顺便锻炼锻炼自己吧. 我都不清楚是不是有哪步骤想错呢. 这个不难的呢. 加油!
可是我不是Linux系统 我用Windows系统写吧 代码差异不大 你是Linux系统吧? 先说清楚 因为换行标志可能不一样
百度hi 里面 我发我QQ 你加下吧 我写完你还要运行看看 那先手机QQ加我吧
我对谁很无奈?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询