使用fputs,就像它完成here。爲了識別新的行,你必須遍歷內容並計算換行符(即linux上的'\ n')。您可以使用getc獲取當前指向的角色。實現這個
一種方式是寫一個返回的該商品的特定行開始,像這樣的字節位置的功能:
#include <stdio.h>
int getRowPos(int row,FILE* fp){
int pos=1,lines=1,currChr;
do{
currChr=getc(fp);
if(currChr=='\n')
lines++;
}while(lines<row && currChr!=EOF && ++pos);
return pos;
}
使用則fseek
一個可以去通過getRowPos
返回的位置加上列數(即字節數,就行了),然後寫使用的fputs所需的內容,就像這樣:
int row=wanted row
int col=wanted column
FILE * pFile;
//Open file for read and write
pFile = fopen ("myfile.txt" , "rb+");
int rowPos=getRowPos(row,pFile);
fseek (pFile , rowPos+colPos , SEEK_SET);
fputs ("my new content" , pFile);
fclose (pFile);
如果您知道您線有多寬是,別回答n寬,你可以添加一個lseek
跳過n個字節啊在致電getc
之前,
它的確如此。在你的例子中,首先從字節0開始,在字節6開始行,在第11個字節開始等等。你看到:'fseek'命令不能理解任何行,句子和單詞。 –
那麼受字符數量影響的字節數呢?如果第16行有6000個字符,它是否會改變第17行第20列的字節數? –
我把編輯搞亂了第一篇評論文章...抱歉... –