两段简单的C语言输入输出代码,这是为什么??
展开全部
首先,第一个问题电脑返回的是ASCII码,而你的输出语句%d,是输出整形数字的,所以计算机输出的是相应字母的ASCII值。想要输出字母,应为%c就可以了。
第二题,s是char类型的,建议使用int型,可能是因为计算机强制转化类型时会丢失字节。
建议您看看谭浩强的书,再按格式输出那一章讲得很好
第二题,s是char类型的,建议使用int型,可能是因为计算机强制转化类型时会丢失字节。
建议您看看谭浩强的书,再按格式输出那一章讲得很好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题:
那个是ASCII编码的结果
你输入的是char类型的数据,输出的是数字类型,这里面存在一个字符到数字的转换的过程,所对应的是ASCII码的字符编码数字
首先,在你的scanf函数中,双引号区域中是没有空格的,而你输入的可是带空格的abc(a
b
c),这里面就有了一个需要注意的地方:
在你输入信息时候,一定要严格遵守scanf函数中的双引号区域中的格式.
别忘了,空格也算一个字符!
经过"a
b
c"的信息输入的过程后,计算机读到的信息是:a、空格、b。
根据ASCII编码的定义:
a=97
空格=32
b=98
故输出的结果是:97,32,98
第二题:
本题与第一题相似,都是使用字符和ASCII编码之间的切换
回车(换行符)的ASCII编码是10
使用scanf函数输入字符数据时,由于是字符类型,那么输入数据之后的空格也将被当做字符数据输入,下一次读取时,数据完的回车字符就会被读入,自动读取,而那个乱码就是回车字符的表示。
如果你只想输入一个字符,可以使用:getch函数,使用方法:c=getch();
那个是ASCII编码的结果
你输入的是char类型的数据,输出的是数字类型,这里面存在一个字符到数字的转换的过程,所对应的是ASCII码的字符编码数字
首先,在你的scanf函数中,双引号区域中是没有空格的,而你输入的可是带空格的abc(a
b
c),这里面就有了一个需要注意的地方:
在你输入信息时候,一定要严格遵守scanf函数中的双引号区域中的格式.
别忘了,空格也算一个字符!
经过"a
b
c"的信息输入的过程后,计算机读到的信息是:a、空格、b。
根据ASCII编码的定义:
a=97
空格=32
b=98
故输出的结果是:97,32,98
第二题:
本题与第一题相似,都是使用字符和ASCII编码之间的切换
回车(换行符)的ASCII编码是10
使用scanf函数输入字符数据时,由于是字符类型,那么输入数据之后的空格也将被当做字符数据输入,下一次读取时,数据完的回车字符就会被读入,自动读取,而那个乱码就是回车字符的表示。
如果你只想输入一个字符,可以使用:getch函数,使用方法:c=getch();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言常用输入输出函数:
printf
格式输出到屏幕
fprintf
格式输出到磁盘
scanf
从屏幕格式输入
fscanf
从磁盘格式输入
putchar
字符输出到屏幕
puts
字符串输出到屏幕
fputc
字符输出到磁盘
fputs
字符串输出到磁盘
getchar
从屏幕得到一个字符
gets
从屏幕得到一个字符串
fgetc
从磁盘得到一个字符
fgets
从磁盘得到一个字符串
printf
格式输出到屏幕
fprintf
格式输出到磁盘
scanf
从屏幕格式输入
fscanf
从磁盘格式输入
putchar
字符输出到屏幕
puts
字符串输出到屏幕
fputc
字符输出到磁盘
fputs
字符串输出到磁盘
getchar
从屏幕得到一个字符
gets
从屏幕得到一个字符串
fgetc
从磁盘得到一个字符
fgets
从磁盘得到一个字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询