这与Mats Petersson对previous question的答案有关。
根据他的方法,我可以成功地保存标题中的行,并在我想要的时候打印出来。但是,我现在想保存整个标题以便稍后打印。我正在使用append()来实现这个目的。但它没有用。
以下是两个函数之外的代码:
static map<string, string> headermap;
static char headerline[1024];
以下是阅读功能的代码:
string paragraph;
for (int i=0; i<8; ++i) {//8 lines of the header
fgets(buffer,1024,fp);
if(buffer[0] == '#'){
paragraph = paragraph.append(buffer);
}
}
headermap[filename] = paragraph;
以下是撰写函数的代码:
const char *headerline = headermap[filename].c_str();
fprintf(fp, headerline);
以前我在阅读功能中使用headerline[i] = buffer[i];
而不是paragraph.append(buffer);
。而headermap[filename] = headerline;
代替headermap[filename] = paragraph;
。
打印时,输出文件中不会打印任何内容。正如我之前所说的,之前当我尝试打印一行时,它运行正常。