繁体   English   中英

使用未声明的标识符“cardNum”

[英]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.

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