我需要一个建议,以便使用c程序在文件中查找和写入字符串。
例如,File.txt具有以下内容
aaaaa bbbbb
ccccc ddddd
eeeee fffff
ggggg
在这里,我想搜索一个字符串“ ddddd”并在该行之后写一个新字符串(“ MMMM NNNN”),例如
添加新字符串后,文件将具有以下内容
aaaaa bbbbb
ccccc ddddd
MMMM NNNN
eeeee fffff
ggggg
以下是我正在尝试使其仍在运行的示例代码
int main(int argc, char *argv[])
{
------
------
/* Opening a file based on command line argument*/
fptr = fopen(argv[1], "rw");
while(fgets(buf, buflen, fptr))
{
------------
{
/*Checking the key string "ddddd" and if presents then have to add "MMMM NNNN" in immediate next line*/
if (strstr(buf, "ddddd"))
{
printf("Found Matching for : %s\n", argv[3]);
fprintf(fptr, "\n%s\n", "MMMM NNNN");
}
}
}
----------
}
是否可以在不创建新文件的情况下更新现有文件?
提前感谢您的回复。
答案 0 :(得分:0)
您需要“假脱机”文件。也就是说,打开文件进行读取,打开一个新文件进行写入,从文件中读取内容,“做您的工作”并写入新文件,关闭文件,删除旧文件并将新文件重命名为旧文件。编码后,您必须自己做。
请注意,文本文件本质上是顺序文件。这意味着,如果您以读/写模式打开文件,则无法“插入”数据,因为这会覆盖其他现有数据。