[英]Use of undeclared identifier 'cardNum'
我在 cs50 的环境中使用库 CS50 的 function,这就是您将值存储在通过输入收集它的变量上的方式:
long i = get_long("Enter a long: ");
这是我的代码:
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int main(void)
{
do
{
long cardNum = get_long("Card number:\n");
}
while (0 <= cardNum <= 9999999999999999);
if (340000000000000 <= cardNum <= 379999999999999)
{
...等等。
问题是
使用未声明的标识符“cardNum”
我已经添加:
long cardNum;
在 do-while 循环之前; 问题解决了。
您在 do 块中使用cardNum
。 在 do 块之外声明它,你的错误就会消失。
正确方法——
long cardNum = 0;
do
{
cardNum = get_long("Card number:\n");
}
while (0 <= cardNum && cardNum <= 9999999999999999);
在您的情况下,您遇到了错误,因为cardNum
仅适用于 do 块并且在 while 内不可见,因为它的 scope 一旦离开do
块就结束。 这就是您use of undeclared identifier 'cardNum'
作为错误的原因。 编译器将其视为while()
function 中的未声明变量。
注意:最好使用long long int
,因为long
的最大范围是基于实现的,有时可能仅限于2,147,483,647
(很可能在 32 位系统上)。 您也可以使用int cardNum[20]
或任何您的最大限制来代替20
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.