当我尝试重新运行程序时,为什么这段代码会产生-10?

时间:2017-07-31 01:00:19

标签: c

在重新运行程序之前,此代码似乎正常工作。它似乎仍然有用,但输入下一组文本的行的开头有一个' -10。'我不是正面的,但问题看起来就像我所知道的那样。任何人都可以帮我解决这个问题吗?谢谢! 对不起那些人...根据要求解释这个程序应该做什么。它应该被输入,直到#'#'签名,然后使用相应的ASCII数字代码将其打印在8块中。希望这是有道理的。

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define COUNT 8

int main(int argc, const char **argv)
{
    char ch;
    int charcount;

    while((ch = getchar()) != '#')
    {
        putchar(ch);
        printf("-%d ", ch);

        charcount++;
        if(charcount % COUNT == 0)
            printf("\n");
    }

    return 0;
}

2 个答案:

答案 0 :(得分:2)

您的INSERT INTO tbl_Capacity (SELECT Employee, Week_Start, value FROM (SELECT Employee, Week_Start, col, value FROM [tbl_Rosters] CROSS APPLY (VALUES ('1', Day1_1),('2', Day1_2),('3', Day1_3)) C (COL, value)) SRC WHERE value != 'x' UNION ALL SELECT Employee, DATEADD(day, 1, Week_Start), value FROM (SELECT Employee, Week_Start, col, value FROM [tbl_Rosters] CROSS APPLY (VALUES ('1', Day2_1),('2', Day2_2),('3', Day2_3)) C (COL, value)) SRC WHERE value != 'x'), 0, 0 <update statements here> 声明

printf

打印减号,然后打印printf("-%d ", ch); 的十进制代码。你按下了Enter,不是吗?

答案 1 :(得分:0)

10是新换行符的值(&#39; \ n&#39;,输入键)。如果你想过滤掉你的回车键,只需在循环开始后立即添加:

if(ch == '\n') continue;