1

这与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;.

当我打印时,没有任何内容打印到输出文件中。正如我之前所说,以前当我尝试只打印一行时,它工作正常。

4

0 回答 0