C ++为什么str [i]的输出是空的?

时间:2016-11-04 05:54:44

标签: c++

以下是我的代码:

    char str [80];
    int n;

     n = MAX + ( rand () % 1000 + 1);
     cout << "number: " << n << endl;

     constructArray(str, n);



    void constructArray (char str [], int n)
    {
    for (int i = 0; i < n; i++)
    {
        while (n > 0)
        {
           // get last pair of digits
           str [i] = n%10;

            n/= 10;
        }
      cout << str[i] << endl;
    }
    }

我无法弄清楚为什么我的编译器不输出任何值。 如果我没有实现数组,它的工作原理。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

for循环的第一次迭代中,当第一次执行whilei=0)时,n将减少为0.因此,您的循环只执行一次。这将导致仅设置str[0]。其他人已经指出,char不能存储大量数字,但这是一个不同的问题。

答案 1 :(得分:0)

您的代码存在一些问题。

  • 您正在integer类型数组中存储char
  • for循环只会执行一次,因为while循环使n = 0

因此只会分配str[0]

答案 2 :(得分:0)

while循环中,n仍然除以10,直到n减少为0.然后for循环结束。所以只输出str[0]