我試圖使用fopen的「r +」模式將編號添加到現有.txt文件中的多行文本。這似乎不起作用,它最終寫了字符串「行」的第一個迭代,然後是大量的垃圾值。有什麼方法可以在一行的開頭添加文本?如果是這樣,我是以錯誤的方式來到這裏嗎?C編程;在文件的開頭添加字符串
也即時嘗試這樣做,而不必寫出一個全新的文件。
void main()
{
char read = ' ';
char buffer[25];
char line[4] = "01."; //lines from 01 to 99
FILE *file;
file = fopen("readme.txt","r+");
if (file == NULL)
{
printf("ERROR: Cannot open input file.\n");
exit();
}
do
{
fwrite(line,strlen(line),1,file);
read=gets(buffer);
if(!feof(file)) // updating line numbers
{
if(line[1]<'9')
{
(line[1])++;
}
else
{
if(line[0]<'9')
{
(line[0])++;
}
else
{
exit();
}
}
}
else
{
exit();
}
}while(!(feof(file)));
fclose(file);
exit();
}
如果達到99行,您可以通過加載所有內存來完成工作。 – BLUEPIXY 2013-05-08 10:37:20
爲什麼你應該避免寫入新文件。我覺得這是最安全的選擇.. – VoidPointer 2013-05-08 10:39:19
我只是想弄清楚是否有另一種方式來做到這一點 – 2013-05-08 11:55:31