c语言 显示字符与字符对应的数字 特殊字符
if (ch ==10){
printf("\n");
printf("\\n");
printf ("%d", ch)
}
结果显示为
换行 \n 10 10
我的问题是为什么会显示两个10 希望知道文题大神解答一下 把完整的代码弄上来
要是对的我觉得应该会打印
\
10 本帖最后由 caihuawuhen 于 2019-10-19 19:39 编辑
完整代码
#include<stdio.h>
int main (void)
{
int ch;
while((ch = getchar()) != EOF )
{
if (ch ==10)
{
printf("\n"); //执行换行
printf("\\n"); //打印 \n
printf("%d", ch); //打印对应的ascii码值
}
else
{
printf(" %c", ch);
printf(" %d", ch);
}
}
return 0;
}
本帖最后由 jackz007 于 2019-10-19 14:22 编辑
caihuawuhen 发表于 2019-10-19 12:04
完整代码
#include
你的代码能编译过去吗?
int char ;
不可以用保留字当变量名,你对变量 ch 的声明在哪里?
我想,得改成这样吧?
#include<stdio.h>
int main (void)
{
char ch ;
while((ch = getchar()) != EOF ) {
if (ch == 10) printf("\\n") ;
else printf("%c" , ch) ;
printf(" %d\n", ch) ;
}
}
打错了 是 int ch关键是重复打印了 printf(" %d", ch) 也就是出现了两个10 即
\n 10 10 我的本意是只打印 \n 10 你要达到的目标通过代码看不出来,也不好帮你改。这里主要要说明两个问题:
1. getchar()
函数描述:int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。
返回值:该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
再次强调,获取“一个无符号字符”,再次强调“一个”“无符号”,返回int型
2. 键盘输入:
运行程序,敲下按键1和按键0,敲下回车,请问输入了几个字符?????
答案是3个,分别是‘1’,‘0’,‘回车符’,getchar()会分别处理这三个字符。
十进制与ASCII码对应关系:1-49,0-48,换行键-10
程序丝毫不差的执行命令,每个输出的10都有可能是回车键
.
.
所以
.
.
.
你看下你的回车键是不是坏了???
页:
[1]