2014-03-06 156 views
-3

以下是函數。我運行該程序,但該文件不會更改。追加到C中的文本文件

void add (char *name, int stock, int limit, float cost) { 
    FILE *afp = fopen("./inventory.csv","a+"); 
    fprintf(afp,"%s,%d,%d,%f\n",name,stock,limit,cost); 
    fclose(afp); 
} 

編輯:哎呀,我只是沒有調用函數。

+4

你檢查了'afp == NULL'嗎? –

+3

你真的在程序中調用上述函數嗎? – Cyclonecode

+1

調試器說什麼 – pm100

回答

0

我會先檢查您的文件是否存在或打開是否正確。檢查* afp是否指向NULL。最後檢查一下你的參數是否有要追加的值。

+0

參數是否有值並不重要。問題說這個文件沒有改變。 –

0

這應該做的工作。

#include <iostream> 
#include <string> 

using namespace std; 

void add(char* name, int stock, int limit, float cost) 
{ 
    FILE *afp; 
    errno_t err = fopen_s(&afp, "./inventory.csv", "a+"); 
    if(!err) 
    { 
    fprintf(afp, "%s,%d,%d,%f\n", name, stock, limit, cost); 
    fclose(afp); 
    } 
} 

int main() 
{ 
    add("book", 12, 10, 15.2); 

    return 0; 
} 

文件不會改變?

這可能是因爲你不允許打開英寸我的意思是說,你不具備閱讀和附加到該文件所需的權利。

該文件不存在嗎?

這沒關係。正如MSDN參考所述,如果以read-and-append模式打開文件,則該文件將在不存在的情況下創建。

打開閱讀和追加。附加操作包括在將新數據寫入文件之前移除EOF標記,並在寫入完成後恢復EOF標記。如果該文件不存在,則創建該文件。