这是功能。我运行程序但文件没有改变。
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);
}
编辑:糟糕,我只是没有调用该函数。
答案 0 :(得分:0)
我首先检查您的文件是否存在或是否已正确打开。检查* afp是否指向NULL。最后检查您的参数是否具有要追加的值。
答案 1 :(得分: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标记。如果文件不存在,则创建该文件。