社区
C语言
帖子详情
加与不加\n的结果
pp25210
2011-01-25 02:37:21
#include<stdio.h>
int main(void)
{
char i=201;
printf("%c",i);
return 0;
}
输出结果
加了‘\n’之后
...全文
341
19
打赏
收藏
加与不加\n的结果
#include int main(void) { char i=201; printf("%c",i); return 0; } 输出结果 加了‘\n’之后
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wopabe
2011-01-26
打赏
举报
回复
LZ,看不到图片
appx
2011-01-26
打赏
举报
回复
对于
char a = 201;
printf("%c",i);
的输出结果,不好确定,因为这个首先取决于你的环境对char型的定义,对于定义为无符号型和有符号型是完全不同的。然后就是对于这两种情况下要看环境对ASCII编码外的字符采取的处理方式,机子会对其采取随机的一种方式处理,当然这里的随机性还与系统资源的使用状况有关,至少我现在的机子就是这样。
Barbiegirl2010
2011-01-26
打赏
举报
回复
图片怎么看不到啊
qiunengjun
2011-01-26
打赏
举报
回复
图片看不到
wizard_tiger
2011-01-26
打赏
举报
回复
[Quote=引用 6 楼 snowwhite1 的回复:]
LZ最好不要这样定义字符,对于char型而言,其表示范围为-128~127,对于unsigned char,表示范围为0~255.一般对字符进行赋值,最好在0~127之间,这样程序具有可移植性。向LZ这样赋值,需要进行转化,并且0~127之外的字符各国并不是完全相同的,经常会出问题。
如果确实要赋值,最好类型改为unsigned char。
[/Quote]
要是赋值的话,这个说的很清楚了。
楼主,图片看不到。
AnYidan
2011-01-26
打赏
举报
回复
ansi c 中规定用的为缺省字符集合是ASCII再加上EOF,下标值从0到127,当仅用字符集合时:
指针 = 缺省字符集合指针 + 1
mtj520
2011-01-26
打赏
举报
回复
[Quote=引用 11 楼 bokutake 的回复:]
如果在纯DOS下,128-255里会有很多有的字符,各种欧洲语言的特殊字母、制表符和一些深浅方框以及数学符号等等。不过问题在于这部分字符和不同的代码页有密切关系,中国用的是和美国一样的Latin-1,但是瑞士、日本等国家就完全不同了。
[/Quote]
+1
辰岡墨竹
2011-01-25
打赏
举报
回复
如果在纯DOS下,128-255里会有很多有的字符,各种欧洲语言的特殊字母、制表符和一些深浅方框以及数学符号等等。不过问题在于这部分字符和不同的代码页有密切关系,中国用的是和美国一样的Latin-1,但是瑞士、日本等国家就完全不同了。
辰岡墨竹
2011-01-25
打赏
举报
回复
是这样的,在中文GBK字符集里,汉字可以有两个字节表示。高字节范围是0×81-0xFE,低字节范围是0x40-7E和0x80-0xFE。比较新的GB18030(现在一般系统都支持),汉字可以有1、2或4个字节。其中双字节和GBK都是相同的。在Windows环境下,一般的代码页(CP936)都没有128~255的字符,会打印问号或者方框代替。但是如果你连续输出的话,因为第二个字节不是回车符,所以可能有的正好组成一个双字节GBK编码,系统就按GBK来解释,于是会显示一堆乱码。
char具体范围因编译器不同而不同,VC是unsigned的。
风中追梦郎
2011-01-25
打赏
举报
回复
图片没有看到哦。
fresh_han
2011-01-25
打赏
举报
回复
楼上有说啊 char的取值范围才是-128~127 如果你取值大于127 就有溢出,应该就是另一个负值了,所以输出肯定不会是你想的了。128赋值给char型的应该就是-128,129就是-1。。。。
[Quote=引用 7 楼 qq252101792 的回复:]
引用楼主 qq252101792 的回复:
#include<stdio.h>
int main(void)
{
char i=201;
printf("%c\n",i);
return 0;
}
输出结果
加了‘\n’之后
我刚刚又调试了下,出现了以下2种情况,还望大家解惑:
1.当给 i 赋大于128的值时输出的全是 ?
2.当printf()语句改为pri……
[/Quote]
pp25210
2011-01-25
打赏
举报
回复
[Quote=引用楼主 qq252101792 的回复:]
#include<stdio.h>
int main(void)
{
char i=201;
printf("%c\n",i);
return 0;
}
输出结果
加了‘\n’之后
[/Quote]
我刚刚又调试了下,出现了以下2种情况,还望大家解惑:
1.当给 i 赋大于128的值时输出的全是 ?
2.当printf()语句改为printf("%c",i); i 值大于128是输出的全是垃圾值。
flysnowhite
2011-01-25
打赏
举报
回复
LZ最好不要这样定义字符,对于char型而言,其表示范围为-128~127,对于unsigned char,表示范围为0~255.一般对字符进行赋值,最好在0~127之间,这样程序具有可移植性。向LZ这样赋值,需要进行转化,并且0~127之外的字符各国并不是完全相同的,经常会出问题。
如果确实要赋值,最好类型改为unsigned char。
kevinxin24
2011-01-25
打赏
举报
回复
201是不可见字符
greyillusion
2011-01-25
打赏
举报
回复
201是个什么字符啊
漫步者、
2011-01-25
打赏
举报
回复
\n会被放入输入队列中。
LZ,你的图片看不到。
justkk
2011-01-25
打赏
举报
回复
ASCII码201本身就不是一个可见字符
如果没有\n,那么这个字符与命令行提示符连在一起,可能显示一个随机的汉子
如果\n,这个字符本身是不可见的
bdmh
2011-01-25
打赏
举报
回复
看不到图片,'\n'就是换行符
android客户端和java服务端用aes
加
密结果不一样的解决方法。
最近在公司做一个项目,老大让我们实现
加
解密的方法,我把工作直接推给了java服务端,他们也是直接在网上copy的代码,说我直接放到我的android代码中就可以了,不需要太多的更改。我就照做了,但是在真正的测试的时候,发现两边输入的密码一致,但是
加
密结果不一致。这可折磨我们了好久,最终解决了这个问题,
加
以记录。 android和java
加
密结果
将任意N个数字从1一直
加
到N(用最简单的FOR循环)
将任意N个数字从1一直
加
到N(用最简单的FOR循环) 代码如下: 1 #include<stdio.h> 2 int main() 3 { 4 int n,c; 5 scanf("%d",&n); 6 c = 0; 7 for (int i = 1;i < n+1;i ++) 8 { 9 c = c + i; 10 } 11 printf("%d\n",c); 12 return 0; 13 }
T-SQL字符串前
加
N是什么意思
T-SQL字符串前
加
N是什么意思 比如 select @status = N'stopped' 那么其中的字符串 stopped 前面为什么要
加
N 呢?而且我们发现有些地方
加
N 与否都没有影响,有些地方又必须
加
N。 www.2cto.com N 在这里表示 Unicode,就是双字节字符。对于西文字符,用一个字节来存储过足够了,对于东方文字字符,就需要两个字节来存储。
输入一个数字n 如果n为偶数则除以2,若为奇数则
加
1或者减1,直到n为1,求最少次数 写出一个函数...
题目: 输入一个数字n 如果n为偶数则除以2,若为奇数则
加
1或者减1,直到n为1,求最少次数 写出一个函数 首先,这道题肯定可以用动态规划来解, n为整数时,n的解为 n/2 的解
加
1 n为奇数时,n的解为 (n+1)/2 和 (n-1)/2 的解中较小的解
加
2 通过这个思路,我们可以自底向上依次计算出n的解,代码如下 public st...
sql server必须在前面
加
N,才能查询出数据以及乱码等问题(Unicode字符串常量、)...
如上图,在查询字段
加
上大写字母N,就能查询出结果。很多时候都是不用也能查询出数据,但是也有列外, 如下图: 1和2,3和4分别是相同的查询语句,但是1和2中只有2能查询出数据,3和4中只有4能查询出数据。 然而在1和3查询前分别
加
上大写的N就能查询出数据。一般查询中文,或不知原因的查询不出数据可以试试
加
上N。 简单了解下N的作用: N‘zmdadmin’ 代表是一个Unicode...
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章