繁体   English   中英

未在此范围内声明的变量C ++

[英]Variable not declared in this scope c++

我对c ++ numFives并且拥有该程序,该程序需要花一些钱并计算允许的5美元钞票的最大数量,并将其分配给numFives 剩余的钱将为一,应分配给numOnes 所有这些都假定提供的钱是19。

#include <iostream>
using namespace std;

int main() {
   int amountToChange = 0;
   int numFives = 0;
   int numOnes  = 0;

   amountToChange = 19; 
   numFives = amountToChange / 5; 

   numOnes = amountToChange - (numFives * 5); //error occurs here

   return 0;
}

我假设这里的逻辑是正确的,但是每当我运行代码时,都会出现此错误:

error: ‘numFives’ was not declared in this scope

似乎变量已正确初始化,我只是看不到代码有任何问题。

您的逻辑正确的,发布的代码也是正确的。

因此,除非您在编译器中发现严重的错误,否则我建议您发布的代码不是导致该错误的代码。

我的建议是返回代码,并重新检查您是否numFives 完全以相同的方式拼写numFives 它仅在第二次尝试使用变量时就抱怨该变量的事实似乎表明在您标记为错误的行上存在拼写错误的变体。

如有必要,请删除该行并重新输入。

另一种可能性是,您已经从允许奇怪字符的应用程序中剪切并粘贴了代码,我在“智能”引号中看到的内容包括:

puts (“won't work”);
puts ("will  work");

通常,可以通过对程序进行十六进制转储(例如使用Linux od程序)来找出是否是这种情况:

$ echo "    puts (“won't work”);" | od -xc
0000000    2020    2020    7570    7374    2820    80e2    779c    6e6f
                          p   u   t   s       ( 342 200 234   w   o   n
0000020    7427    7720    726f    e26b    9d80    3b29    000a
          '   t       w   o   r   k 342 200 235   )   ;  \n
0000035

并寻找不属于您的东西。 在您的情况下,这将与最终numFives发生有关。


顺便说一句,您还可以考虑使用:

numOnes = amountToChange % 5;

算出余数。 从某种意义上说,该错误将有望“解决”您的问题,希望该错误会消失,但是在解决之前,我会找出根本原因。

如果使用的是Visual Studio,则会发布由Intellisense工具提供的错误,该错误负责C ++源代码标签管理。

Intellisense 不是编译器-如果您看到自己的代码正确,但是Intellisense给出了错误,并不表示您的代码是错误的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM