C ++程序不显示输出

时间:2018-08-25 13:48:44

标签: c++

要打印的代码
A
B B
C C C
D D D D
E E E E E

 #include<iostream>

using namespace std;


 int main() { 
     int j = 70;
     char ch = ' ';
     int k = 65;
     int n = j - k;
     for(int i = 1; i <= n; i++) { 
         for(int m = 1; m <= i; m++) {
             ch=(char)(k);    
             cout<<(k+"  ");      
         }
         cout<<endl;
         k++;
     }
     return 0;
}

请确定我在linux(ubuntu)上运行的代码中的错误

3 个答案:

答案 0 :(得分:2)

+是二进制加法运算符,因此在执行(k+" ")时,实际上是在循环中将65,66,67,68 and 69添加到" "的指针地址(字符串文字)中。 这是未定义的行为。

因此替换您的

     cout<<(k+"  ");      

      cout<<ch<<"  ";

答案 1 :(得分:2)

错误在cout<<(k+" ");行中 为了解释正在发生的事情,我们考虑一下k = 2和const char [] "bacd"。 然后2 + "bacd"与从“ bacd”的第二位置开始具有字符指针相同。 因此cout << k + "bacd";将打印cd作为输出。

所以k+" "等效于第k个位置“ <”的字符指针

答案 2 :(得分:-5)

此行中的错误:

         cout<<(k+"  ");