gpt4 book ai didi

c++:ifstream删除文件的内容?

转载 作者:行者123 更新时间:2023-11-30 02:32:41 27 4
gpt4 key购买 nike

<分区>

我正在使用以下功能:

int getline_count()
{
boost::smatch resultc;
string sLine;
int line_add_tmp;
ifstream infile;
infile.open("scripts.txt", ios_base::in);
if (!infile){
cerr << "scripts.txt could not be opened!" << endl;
}
else {
getline(infile, sLine);
if (boost::regex_match(sLine, c)) {
line_add = 2;
}
else {
line_add = 1;
}

return line_add;
infile.close();
}
}

上述函数的意图是测试文件的第一行是否包含'//new' 如果为真,则返回2。如果为假,则返回 1。到目前为止,这工作正常。

令我感到困惑的是,运行后文件 scripts.txt 是空的。怎么会是因为

1.) '//new' 行被正确识别,因为我得到返回 '2'(按预期在空文件上运行返回 1)。所以不可能是在打开文件 scripts.txt 时被空文件覆盖了

2.) ifstream 被设计为只读

我缺少的是什么?

编辑:

c 的定义是

static const boost::regex
c("^(\\/)(\\/)(new|New| new| New)"); // Regexp for line count

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com