我有一些类似LineNumber.Number
的字符串来自之前的代码。我将它们分成2变量LineNumber
和LineContent
,之后我想在文件的相应行中写LineContent
。但LineNumber
s没有订购,所以也许我首先应该写入行号300,然后写入第5行,依此类推。我怎么能用C语言做到这一点?该文件最初为空,因此我无法计算\n
s。
答案 0 :(得分:1)
您可以根据遇到的最大行数分配一个C字符串指针数组。当你去的时候max增加,你重新分配。
每次代码看到一行的新内容时,它都会重新分配C字符串,并复制新内容。
完成后,迭代你的数组,逐行写入文件。
答案 1 :(得分:1)
p = fopen("filename.txt","r+");
char acline[80]
数组。fgets(acline,80,p)
这将复制存储在文件acline[80]
然后使用此方法搜索特定位置
for(int i=0;acline[i]!=0;i++)
{
if(bla bla bla)
{ //your code }
else {}
}
char buffer[] = { 'x' , 'y' , 'z' };
注意i的位置然后用fseek(p,0,SEEK_SET);
代替i的0位置,然后写或使用fwrite (buffer , sizeof(char), sizeof(buffer), p);
答案 2 :(得分:1)
如果我已正确理解您的问题,您有LineNumber.LineContent
形式的字符串项的无序列表,并且您希望在处理它之后,获取一个文件,其中所有LineContent
都写在正确的位置。
我无法想象比以下更好的方式:
qsort
函数)