2011-02-24 103 views
1

在下面的代码中,我将值1-9保存在Excel文件中,并且希望在“4”和“5”之间插入“a”。我已经将指针设置为位置7,但它仍然将其插入到最后。请帮我理解这一点。将值插入到文件中

FILE *ExcelFile = fopen("testdata.csv","a"); 
if (ExcelFile == NULL) 
return -1; 
fprintf(ExcelFile,"1 2 3 4 5 6 7 8 9"); 
fseek (ExcelFile, 7, SEEK_SET); 
//printf("pos is %ld bytes\n", pos); 
fprintf(ExcelFile,"a"); 
fclose(ExcelFile); 

回答

3

这是行不通的原因是因为你打开文件进行追加(fopen调用中的“a”标志)。无论何时写入文件,您写入的数据都将被添加。如果您的文件在打开之前不存在,请改用fopen("testdata.csv","w")

+0

感谢qbert220先生非常感谢ü人真棒十分感谢 – tariq 2011-02-24 11:08:30

+0

先生我被设置搜索模式“W”过来写值4和插入获得的其他问题“一“ – tariq 2011-02-24 11:19:25

+0

如果我用”w“替换”a“,代码对我来说工作正常。它用“a”替换“4”和“5”之间的空格,最后在文件中以“1 2 3 4a5 6 7 8 9”结尾。如果你的意思是你想让这个文件更长一些,最后用'1 2 3 4a 5 6 7 8 9',那么你需要遵循Armen的建议。 – qbert220 2011-02-24 11:45:31

1

您不能将值插入到文件中。您必须打开一个新文件,复制第一个文件的第一部分,然后复制您的值,然后复制其余部分,然后用新文件替换旧文件,或者如果文件很小,请将其读入内存,清除文件,然后写入正确的文件。

+0

感谢armae​​n先生的关心 – tariq 2011-02-24 11:10:26

+0

OK先生感谢感谢 – tariq 2011-02-24 11:24:26