在此范围内未声明“ pos”

时间:2019-06-08 00:02:34

标签: c++ visual-studio

当前获取此错误:

.forEach(day => {

我一直在尝试弄乱这个字符串,但是当我尝试编译时似乎无法通过它。

代码:

.forEach((day) => {

试图使其编译以显示车辆清单的输出,但是在此部分上遇到了一些麻烦,该输出显然目前不会由于此错误而编译。 (显然这不是完整的代码)

3 个答案:

答案 0 :(得分:3)

您试图在pos语句内使用声明初始化 if的语法:

if (const size_t pos = name.find(prefix)); pos != string::npos)

仅在C ++ 17和更高版本中有效。另外,您需要删除)之前有一个错误的;,正确的语句是:

if (const size_t pos = name.find(prefix); pos != string::npos)

对于早期版本的C ++,您需要将pos声明if语句分开:

const size_t pos = name.find(prefix);
if (pos != string::npos)

或者,您可以在pos语句中执行if赋值,而不必执行声明,但是语法略有不同:

size_t pos;
if ((pos = name.find(prefix)) != string::npos)

答案 1 :(得分:2)

如果我正确理解了您的代码,则可能是您要执行的操作:

size_t pos = name.find(prefix);

if(pos != string::npos)
    name.erase(pos, length);

答案 2 :(得分:0)

在if之后直接输入分号。因此出现了第二次pos,它不在if块中,这是pos在范围内的唯一位置。