我有一个API函数,将常数char *作为输入。我必须创建一个带分隔符的文本文件,该文件是功能的输入,例如:
193.875 0.0 0.0 2
193.876 0.0 0.0 2
193.877 0.0 0.0 2
193.878 0.0 0.0 2
193.879 0.0 0.0 2
193.880 0.0 0.0 2
193.881 0.0 0.0 2
该软件的支持人员告诉我,我可以使用sprintf()创建并保存此文件的每一行,因此我使用它的方式如下:
sprintf(wsp,"%.3f\t0.0\t0.0\t%d\n", start_freq, z);
将这一行放入循环后,我将每个创建的wsp保存在字符串数组中:
for (int j = 0; j < start; j++){
sprintf(wsp,"%.3f\t0.0\t0.0\t%d\n", start_freq, z);
start_freq = start_freq + 0.001;
wspfile[j] = wsp;
}
现在我有一个具有所需格式的文件,但是以字符串数组形式出现。我的问题是在创建数组后如何将该数组作为常量char *传递或如何将其转换为常量char *
最佳答案
您可以将wspFile设为std :: string而不是数组。然后代替
wspFile[j]=wsp;
你将会拥有
wspFile+=wsp;
然后获取const char *版本,您将调用
wspFile.c_str();