我有一个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();

08-16 04:07