在C语言中附加到文本文件
这里是函数。我运行了程序,但文件的格式没有改变在C语言中附加到文本文件,c,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); } 编辑:哎呀,我只是没有调用该函数。我会先检查您的文件是否存在或是否已正确打开。检查*afp
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);
}
编辑:哎呀,我只是没有调用该函数。我会先检查您的文件是否存在或是否已正确打开。检查*afp是否指向NULL。最后检查您的参数是否有附加值。这应该可以完成这项工作
#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;
}
文件没有更改吗
这可能是因为您不允许在中打开。我的意思是,您没有读取和附加到该文件所需的权限
文件不存在吗
这没关系。正如在参考资料中所说,如果以读取和附加模式打开文件,则会在文件不存在时创建该文件
打开以进行读取和追加。追加操作包括在将新数据写入文件之前删除EOF标记,并在写入完成后恢复EOF标记。如果文件不存在,则创建该文件。是否检查了afp==NULL?是否在程序中调用了上述函数?调试器执行了什么操作say@KristerAndersson,这看起来确实是一个更好的问题:你真的在你的程序中调用了上面的函数吗?参数是否有值并不重要。问题是文件没有改变。