Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 函数,该函数将字符串和数字作为创建文件名的参数_Php_C++ - Fatal编程技术网

Php 函数,该函数将字符串和数字作为创建文件名的参数

Php 函数,该函数将字符串和数字作为创建文件名的参数,php,c++,Php,C++,我必须在一个循环中创建不同的数据文件。 我想生成三种文件类型,如下所示 typeA%00d.txt 类型B%00d.txt和 typeC%00d.txt 为此,我想实现一个函数,该函数以序列号和字符串作为参数 类似于此: void make_file(paarvec data, int count){ int size = data.size(); char filename[160]; sprintf(filename, "name%03d.txt", count); ofstr

我必须在一个循环中创建不同的数据文件。 我想生成三种文件类型,如下所示

typeA%00d.txt

类型B%00d.txt和

typeC%00d.txt

为此,我想实现一个函数,该函数以序列号和字符串作为参数

类似于此:

void make_file(paarvec data, int count){ 

 int size = data.size();
 char filename[160];
 sprintf(filename, "name%03d.txt", count);

 ofstream out_data(filename);
 for(int n=0; n<size; ++n){
    out_data << data[n].first << "\t" << data[n].second << endl;
    }
 out_data.close();
}
void make_文件(paarvec数据,int计数){
int size=data.size();
字符文件名[160];
sprintf(文件名,“名称%03d.txt”,计数);
流输出数据(文件名);

对于(int n=0;n只需将函数更改为:

void make_file(paarvec data, const std::string &name, int count){ 

  int size = data.size();
  char filename[160];
  snprintf(filename, sizeof(filename), "%s%03d.txt", name.c_str(), count);
  ...

注意:我将
sprintf
更改为
snprintf
——防止代码中出现缓冲区溢出之类的意外情况是一个好习惯。

什么法律禁止您只向
make_file()
添加另一个参数?也许我做错了什么,但它不起作用:(“你好,查克的汽车修理厂?我的车坏了,你能修好吗?”--你希望得到一个有意义的答案吗?事实上,我得到了一个有意义的答案,下面是聪明友好的斯拉瓦……非常感谢斯拉瓦。
void make_file(paarvec data, const std::string &name, int count){ 

  int size = data.size();
  char filename[160];
  snprintf(filename, sizeof(filename), "%s%03d.txt", name.c_str(), count);
  ...