C 新手,我正在尝试就地进行文本替换。我认为 fopen 中的 r+ 应该允许我读写。我正在查看文件中的每一行,如果它以 / 开头,那么我将http://example.com附加到该行的开头。Example...line is /tree 然后该行变为http://example.com/tree。正则表达式工作正常。我可以很好地读取文件,但它没有写入。任何想法为什么?
void
fix_relative (char *page)
{
FILE *fp;
fp = fopen ("file", "r+");
char line[1000];
regex_t re;
regcomp (&re, "^/", REG_EXTENDED);
while (fgets (line, sizeof line, fp) != NULL)
{
if (regexec (&re, line, 0, NULL, 0) == 0) {
fprintf (fp, "http://example.com%s\n", line);
}
}
fclose (fp);
}