2011-02-24 58 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