C语言 为什么数组的元素打印不正确



我刚刚从C开始。我写了一些非常基本的练习代码,它应该将键盘输入读取到数组中,输出最长行的长度,然后打印出来。有一个函数可以读取输入,我希望它每次都打印出分配给数组的每个字符,但它不起作用。它打印了一些看起来很奇怪的字符。我确实寻找了"阵列打印垃圾"。但没有找到答案。

    int getline(char line[])
    /*
    This function   1) Reads a line of input until a 'n',
                    2) Returns the length of the line and
                    3) Saves the line in the array "line[]"
    */
    {
        int c,i;
        i=0; // The character count
        printf("Enter characters:n");
        while((c=getchar())!='n') // Reads input until it hits a 'n'
        {
            line[i]=c;
            i++;
            printf("char %d = %c n ",i,line[i]);// 

为什么这个"printf"不能正常工作?它在第二个占位符处打印了一个奇怪的字符

        }
        printf("you typed %d characters.n",i); //Outputs the number of characters typed
        return i;
    }

在递增i打印line[i]。因此,您总是在刚刚设置的元素之后打印元素,这通常是垃圾。

把线

i++;

while循环结束时。

相关内容

  • 没有找到相关文章

最新更新