您的位置 首页 主动

getchar()使用时遇到的数据类型过错

1在字母读取操作中通常会使用到这条语句while((c=getchar())!=EOF)在做练习时,没有注意括号的重要性,写成while(c=ge

1.
在字母读取操作中一般会运用到这条句子
while ((c = getchar() ) != EOF)
在做操练时,没有留意括号的重要性,写成
while (c = getchar() != EOF)
成果使得putchar(c)是乱码。
剖析:
回来的bool值尽管也是1没错,可是c获得的值却是乱码。鉴于句子里边只要两个判别符号
猜想是符号优先级导致了乱码?
估测c被赋予的值是int 1。可是作为char输出时,是乱码。不该应当会当作ACSII码来处理吗?

还有便是没有了解一次性调用的基本原理,便是设定一个进入条件,执行时改动他:
if ((c == ) || (c == t) )
if (flag == 0)
{

flag = 1;
}
2.
char s[] = {123,456};//编译过错!
char s[] = {1,4}; //经过编译,输出s内容是乱码!!
char 数组不能那样存?
可是运用 c = getchar(); 之后,便是c存的是数字,可是也是char类型。
能够有 s [i] = c; ,一起输出也是正确值(键盘输入123,s元素也是123);

执行时产生了Segmentation fault (core dumped)过错,因为数组操作为主,初定是数组越界导致。

没错便是数组越界形成的!关于数组s[10],实践规模是s[0]~s[9]!千万别往s[10]里边存东西,我就存了#!#!#!#!还好仅仅存了结束符,不影响外表显现作用。从0开端计数的原则是C言语前史留传形成的,尽管不大契合习气,但已约定俗成

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/256720.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部