C++ 嵌套while循环中的作用域变量

C++ 嵌套while循环中的作用域变量,c++,while-loop,scope,nested,C++,While Loop,Scope,Nested,有人能帮我解决这个问题吗 我需要我的程序来识别custID。我编译,它说custID没有在这个范围内声明。我正试图从文本文件中读取此内容 while (infile) { infile >> init; infile >> custID >> planType; while(init != '\n' || !'<eof>') { infile >> phone_n

有人能帮我解决这个问题吗

我需要我的程序来识别custID。我编译,它说custID没有在这个范围内声明。我正试图从文本文件中读取此内容

while (infile)
{
    infile >> init;
    infile >> custID >> planType;

        while(init != '\n' || !'<eof>')
        {
            infile >> phone_num >> minutes >> texts >> gigs;

            stepOneTotal = stepOneFunc(planType , phone_num , minutes , texts , gigs);

            sum += stepOneTotal;

            counter += 1;
        }
                stepTwoFunc(custId , sum , acctData);
                stepThreeFunc(custID , planType , counter , sum);

                grandTotal += sum;
                counter = 0;
                sum = 0;                                            
    }
while(填充)
{
内嵌>>初始化;
infle>>custID>>planType;
while(init!='\n'| |!'')
{
填充>>电话号码>>分钟数>>文本>>演出;
stepOneTotal=stepOneFunc(植物类型、电话号码、分钟、文本、演出);
总和+=一步之和;
计数器+=1;
}
stepTwoFunc(客户ID、金额、账户数据);
stepThreeFunc(客户ID、PlantType、计数器、总和);
总计+=总和;
计数器=0;
总和=0;
}

只需在第一个
循环中声明
planType
,然后再分配给它。

请避免显示缩进的点,让实际缩进显示缩进。有了这些点,我们就更难复制代码片段并自己尝试了。至于你的问题,你能详细说明一下吗?变量的作用域是声明它的作用域以及其中的所有嵌套作用域。这意味着如果在进入外部循环之前声明
planType
,则范围包括外部循环以及任何内部循环或其他块。你的代码没有编译吗?你有什么问题?对。。。代码不编译。我认为不应该有任何问题。当我编译时,出现了一个错误,说custID未在此范围内声明。与您的问题无关,但您似乎在使用
>
运算符的结果,而没有测试它们是否成功(这可能导致未定义的行为)。当然,
!”将始终为false。(从形式上讲,它有一个实现定义的值,因此在不知道实现的情况下我们无法确定。但实际上,我无法想象
'
的实现将是
0
)您同时使用
custId
custId
。我怀疑其中一个是错的。