C新手,我試圖做一個文本替換到位。我認爲fopen中的r +應該允許我讀寫。我正在查看文件中的每一行,如果它以/開始,那麼我預先將http://example.com添加到該行的開頭。示例...行是/ 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);
}
使用ftell()和fseek()返回更多。 –
你真的必須在c中做這個嗎? 'sed -i's | ^/| http://example.com/ |'文件' – Kevin
@凱文 - 有效的點,但我想我應該知道爲什麼這不起作用。 – user983223