这与Mats Petersson对我之前的问题的回答有关。
按照他的方法,我可以成功地把这行保存在表头中,以后想打印就打印出来。但是,我现在想保存整个标题以便以后打印。我正在使用 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;
.
当我打印时,没有任何内容打印到输出文件中。正如我之前所说,以前当我尝试只打印一行时,它工作正常。