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

标签 c

这段代码似乎可以正常工作,直到我重新运行该程序。它似乎仍然有效,但输入下一组文本的行的开头有一个“-10”。我不确定,但据我所知,问题似乎出在 printf 中。谁能帮我解决这个问题吗?谢谢你! 抱歉各位...根据要求解释该程序应该做什么。它应该接受输入直到“#”符号,然后用相应的 ASCII 数字代码以 8 为一个 block 进行打印。希望这是有道理的。

#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;
}

最佳答案

您的printf语句

printf("-%d ", ch);

打印一个减号,然后打印换行的十进制代码。你按下了 Enter 键,不是吗?

关于c - 当我尝试重新运行程序时,为什么此代码会产生 -10?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45406195/

相关文章:

c++ - 丢弃一个值会导致读取它吗?

c - 搜索/删除时出现 2-3 棵树分割错误

c - 使用switch语句调用函数不起作用

C - 比较并将 char* 转换为 char

c++ - 从无符号长十六进制转换为 DWORD

c++ - 函数定义中可以缺少函数声明中的静态关键字吗?

c - 声明并定义函数 distance() 以查找 c 中两点 (x[0], y[0]) 和 (x[1], y[1]) 之间的欧氏距离

c - 复杂类型的 mmap 问题

c++ - 在C中循环不进行n次比较

c - 有没有办法使用 C 代码验证正则表达式模式的语法