linux 系统中用C语言实现txt 文本文档插入任意行。

具体要求是,在txt 中任意行插入任意字符或字符串。在linux 中编译./a.out 1.txt abc 3

意思是在1.txt 中第3行插入abc ,原来的第3行就变成了第4行
答案是无赖

要用到文件操作命令咯 而且对文本文件还要进行相应的文本操作 比如你知道每行标志吧? \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加我吧
我对谁很无奈?
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-12
我的想法就是从文件中依次读取字符,当读到回车时计数,然后计数到你想要输入的那一行,把数据写入,加上回车