C+中的fopen函数写入文件

C+中的fopen函数写入文件,c,debugging,fopen,fwrite,C,Debugging,Fopen,Fwrite,我想把一些数据写入一个文件。但是我有太多的数据,每个数据都应该通过特定的结构命名,这取决于每个数据文件的节点数和边数 例如:对于具有10个节点和20条边的数据,其名称将为s_10_20.txt 对于具有14个节点和30条边的数据,其名称将为s_14_30.txt 我下面的结构是:s\u numOfNodes\u numOfEdges.txt 知道已经从数据文件扫描了numOfNodes和numOfEdges 我写的代码是: FILE *fp; fp=fopen("s_%d_%d.txt",num

我想把一些数据写入一个文件。但是我有太多的数据,每个数据都应该通过特定的结构命名,这取决于每个数据文件的节点数和边数

例如:对于具有10个节点和20条边的数据,其名称将为s_10_20.txt 对于具有14个节点和30条边的数据,其名称将为s_14_30.txt 我下面的结构是:s\u numOfNodes\u numOfEdges.txt 知道已经从数据文件扫描了numOfNodes和numOfEdges

我写的代码是:

FILE *fp;
fp=fopen("s_%d_%d.txt",numOfNodes,numOfEdges,"w+");
这给了我以下错误:

传递fopen的参数2将指针从整数转换为不带强制转换的整数 参数太多,无法使用fopen函数 如何以其他方式编写它?

sprintf函数可以帮助您

char file_name[MAX_PATH];
sprintf(file_name, s_%d_%d.txt",numOfNodes, numOfEdges);
fopen(file_name, "w+");

为什么假设fopen接受格式字符串,而它不接受格式字符串?阅读它的文档。请理解字符串格式不是魔术,当您将百分比符号敲入字符串文本时,它不会自动发生。C不是Python!,然后使用snprintf构造适当的文件名。@Dayalrai No cplusplus.com请。首先是因为这是C,不是C++,其次是因为CPLUS PLSU.S.com包含严重的错误和大量的错误信息。fopen.ooppss的官方文档接受我的道歉:H2CO3,我如何使用snprintf?你能帮帮我吗,因为我是一个编程新手。@SabineKhalil到目前为止你用它做了什么?你说MAX_PATH是什么意思。。。我得到一个错误,它是未声明的!如何申报?谢谢大家!@SabineKhalil:MAX_PATH表示文件名的最大字符数。您可以定义MAX_PATH 255左右。