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)
{
}
2.
char
char s[] = {1,4};
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言语前史留传形成的,尽管不大契合习气,但已约定俗成