附加到C中的文本文件

时间:2014-03-06 18:47:54

标签: 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);
}

编辑:糟糕,我只是没有调用该函数。

2 个答案:

答案 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标记。如果文件不存在,则创建该文件。