我觉得很奇怪,因为问题似乎微不足道。抱歉,但在检查各种StackOverflow问题后,我无法使其工作。
想法是:
我设法将字符保存在char *变量中并且它有效(printf在%s中显示正确的目录)
if (!strcmp(tmp_str, "FILE_PATH")) {
audioFileConfig.filePath = token;
printf("RECORDING_FILEPATH = %s\n", audioFileConfig.filePath);
}
我尝试从代码中访问audioFileConfig.filePath并从中创建整个文件名:
// getting time stamp
char* recStartTimeStamp = createTimeStamp();
//creating file name
char fileName[20];
sprintf(fileName, ".audio_%d_%d.wav", (channelId +1), part);
//reading filePath from config
char path[256];
strncpy(path, audioFileConfig.filePath, 256);
//merging chars
char* streamFileName;
streamFileName = new char[strlen(path) + strlen(recStartTimeStamp) + strlen(fileName) + 1];
strcpy(streamFileName, path);
strcat(streamFileName, recStartTimeStamp);
strcat(streamFileName, fileName);
//check what's inside
cout<< "\nCreated file: " << streamFileName;
但是我在文件名的开头得到的只是随机的ASCI字符。将它与整个弦连接起来的正确方法是什么?字段文件路径为char*
。