Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;-循环初始化的奇怪问题_C++_Loops_Initializing - Fatal编程技术网

C++ C++;-循环初始化的奇怪问题

C++ C++;-循环初始化的奇怪问题,c++,loops,initializing,C++,Loops,Initializing,编译器甚至不能处理最简单的循环 #include <iostream> using namespace::std; int main() { for( int i = 0, char a = 'A'; i <= 26; i++, a++ ) cout << "OK, lets try. Showing values: i = " << i << ", a = " << a <<

编译器甚至不能处理最简单的循环

#include <iostream>
using namespace::std;

int main()
{

    for( int i = 0, char a = 'A'; i <= 26; i++, a++ )

    cout << "OK, lets try. Showing values: i = "
         << i << ", a = " << a << endl;
}
是的,我知道我可以在循环之前初始化'I'和'a'。让我们试试:

#include <iostream>
using namespace::std;

int main()
{
    int i = 0;

    for(i = 0, char a = 'A'; i <= 26; i++, a++ )

    cout << "OK, lets try. Showing values: i = "
         << i << ", a = " << a << endl;
}
使用选项-std=c++11时:

prog.cpp: In function ‘int main()’:
prog.cpp:7:17: error: expected unqualified-id before ‘char’
prog.cpp:7:17: error: expected ‘;’ before ‘char’
prog.cpp:7:38: error: expected ‘)’ before ‘;’ token
prog.cpp:7:40: error: ‘i’ was not declared in this scope
prog.cpp:7:45: error: ‘a’ was not declared in this scope
prog.cpp:7:49: error: expected ‘;’ before ‘)’ token

最后一个:

#include <iostream>
using namespace::std;

int main()
{
    int i = 0;
    char a = 'A';

    for(i = 0, a = 'A'; i <= 26; i++, a++ )

    cout << "OK, lets try. Showing values: i = "
         << i << ", a = " << a << endl;
}

不能在同一声明中声明不同类型的项。

在循环内部和外部都是如此。你不是“瞎子”,它不是有效的C++。 以下是正确的代码:

#include <iostream>
using namespace::std;

int main()
{
    int i = 0;
    char a = 'A';

    for(; i <= 26; i++, a++ )

        cout << "OK, lets try. Showing values: i = "
            << i << ", a = " << a << endl;
}
#包括
使用namespace::std;
int main()
{
int i=0;
字符a='a';

对于(;i您不能在同一声明中声明不同类型的项目。

<>这在环路内外是真实的。你不是“盲”的,它不是有效的C++。 以下是正确的代码:

#include <iostream>
using namespace::std;

int main()
{
    int i = 0;
    char a = 'A';

    for(; i <= 26; i++, a++ )

        cout << "OK, lets try. Showing values: i = "
            << i << ", a = " << a << endl;
}
#包括
使用namespace::std;
int main()
{
int i=0;
字符a='a';

因为(;i26是一个很小的数字,所以你可以这样做

#include <iostream>

int main()
{
    for( char i = 0, a = 'A'; i <= 26; i++, a++ )
        std::cout << "OK, lets try. Showing values: i = "
            << static_cast<int>(i) << ", a = " << a << std::endl;
}
#包括
int main()
{

因为(chari=0,a='a';i26是一个非常小的数字,所以你可以这样做

#include <iostream>

int main()
{
    for( char i = 0, a = 'A'; i <= 26; i++, a++ )
        std::cout << "OK, lets try. Showing values: i = "
            << static_cast<int>(i) << ", a = " << a << std::endl;
}
#包括
int main()
{


对于(chi i=0,a=‘a’;i c元素可以在(和第一个;C++)之间插入它,直到它编译“语言类型”。请自己帮个忙,得到一个好的。会节省大量的时间和挫折。认真。这也有助于先熟悉自己。我不建议先做C。(这是一个很好的方法,用C++来学习坏习惯),但其他的是。C++中的哪些元素可以放在第一个?语言的类型。做你自己的一件事,得到一个好的东西。会节省你很多时间和挫折。认真。它也有助于熟悉自己。我不建议先做C(这是一个很好的方式来选择什么是,在C++,坏习惯)。,但在其他方面是的。唯一的问题是,这些不是声明。它们都是定义。@CostantinoGrana它们都是,就我们的目的而言,区别是不相关的。你是对的,因为定义是声明的子集。我的建议是,我们用它们的名称来调用定义,以强调它们正在分配存储(它们不是外部的)。@CostantinoGrana可以这样做,但这实际上只是分散注意力,因为它与主题完全无关。主题是关于
for
构造中使用的声明语句;该声明是否也是定义的完全不在重点范围之内。@CostantinoGrana我称之为这些“非定义声明”,但我从未遇到过必须部署该术语的情况(直到现在;)唯一的问题是这些不是声明。它们都是定义。@CostantinoGrana它们都是,就我们这里的目的而言,区别是不相关的。你是对的,因为定义是声明的子集。我的建议是,我们用它们的名称来称呼定义,以强调它们是在分配存储(它们不是外部的)@CostantinoGrana可以这样做,但这实际上只是一个分散注意力的问题,因为它与主题完全无关。主题是关于
for
构造中使用的声明语句;该声明是否也是定义的,完全不是重点。@CostantinoGrana我称之为“非定义声明“但我从未遇到过必须部署术语的情况——直到现在;)您需要编写
+i
或使用更详细的方式来进行整体升级,否则您将流式传输大量不可打印的ASCII字符。只有一个原因,当您实际打算将某个字符用作数字时,不使用
char
:它表示意图不好,而且容易出错。是的,
char
是简单的作为一个数字输入,但您不应该将其作为一个数字使用。谢谢。错过了
i
是要输出的。您需要编写
+i
或使用更详细的方式来进行整体升级,否则您将流式传输一堆无法打印的ASCII字符。这只是当您实际输入了一些内容时不使用
char
的一个原因nd用作一个数字:它表示意图很差,而且很容易出错。是的,
char
被实现为一个数字,但您不应该将其用作一个数字。谢谢。错过了
i
被放出来了。
#include <iostream>
using namespace::std;

int main()
{
    int i = 0;
    char a = 'A';

    for(; i <= 26; i++, a++ )

        cout << "OK, lets try. Showing values: i = "
            << i << ", a = " << a << endl;
}
#include <iostream>

int main()
{
    for( char i = 0, a = 'A'; i <= 26; i++, a++ )
        std::cout << "OK, lets try. Showing values: i = "
            << static_cast<int>(i) << ", a = " << a << std::endl;
}
int main()
{
    for( char i = 0, a = 'A'; a <= 'Z'; i++, a++ )
        std::cout << "OK, lets try. Showing values: i = "
            << static_cast<int>(i) << ", a = " << a << std::endl;
}