c - 为什么“K”个数的输出多于输入字符?
问题描述
输入输出字符数不是一样吗?
int ch;
while(ch != '\n')
{
ch = getchar();
putchar('K');
}
解决方案
变量ch
未初始化。因此,while 循环中的初始条件具有未定义的行为,因为变量ch
具有不确定的值。
按以下方式更改代码片段
int ch;
while( ( ch = getchar() ) != '\n' && ch != EOF )
{
putchar('K');
}
请注意,它ch
被声明为具有 type int
。char
否则,如果编译器将该类型作为类型处理,则代码将无法工作unsigned char
。
至于你的问题
Why output of number of 'K' are more than the input characters?
然后你首先输出输入的字符,然后才在 while 语句的条件下检查它。因此,如果不将换行符算作输入字符,则输出字符将比输入字符大一。
推荐阅读
- delphi - 如何禁用 F1 并专注于菜单项?
- r - 运行调用结果
- javascript - 计算用户创建天数
- sql - 如何优化大表的 Postgresql ARRAY_AGG 查询?
- java - Java、MySQL DB、SpringBoot 和 Thymeleaf。如何使用 Thymleaf 从 2 个不同的类中提取一些字段以从数据库中获取数据
- android - 如何删除 ImageButton 周围的空白?
- typescript - 格式人(JsonBody
): T,可分配给类型“T”的约束,但可以用不同的子类型实例化 - mapping - “GPWRT_34065 [错误] Gpload 错误:意外错误——回溯写入日志文件”
- android - 获取元素 Jetpack Compose 的高度
- django - 在使用 Django 框架构建的博客 Web 应用程序中单击重置密码时,我没有收到密码重置电子邮件链接