为什么数组元素打印不正确?

时间:2013-06-09 11:52:36

标签: c arrays function printing

我刚刚开始使用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;
    }

1 个答案:

答案 0 :(得分:1)

您在之后打印line[i] 已增加i。所以你总是在你刚设置的元素之后打印元素,这通常是垃圾。

放线

i++;

while循环结束时。