您的位置:

c语言的奇怪性,c语言具有的特性

本文目录一览:

C语言 为什么输出如此奇怪?

这是因为缓冲区的回车符导致的,每次scanf读取字符后会留下一个回车在缓冲区,while循环会把这个回车读取给grade,那么就会触发switch的default了

在switch块后面跟一句rewind(stdin);把缓冲区清空就好了

switch(gread)

{

...............;

}

rewind(stdin); //清空缓冲区

或者在输入格式附后加一个空格吸收回车符

scanf("%c ",grade) //%c后面加个空格,就可以吸收回车,空格TAB这类空白字符

C语言有什么优点什么缺点?有什么特别之处

c语言的优点就是它的性能极佳,其它编程语言几乎没有它的性能,因此它被用为linux操作系统设计语言。

c语言的缺点是太灵活,没有垃圾回收,代码不好编写。

c语言特别之处就是它的指针和结构体,这两个东西的存在让c语言变得异常强大,很多复杂的业务设计,都可以通过它们两个来实现,也可以说,只有掌握了指针和结构体,你才算入门c语言。

C语言的一些奇怪的表现,求高人指点。

先解释为什么没办法输入name。

执行这条scanf("%d",p-number);

之后通过屏幕输入的内容实际为一个整数+一个换行符,

儿scanf只读取了一个整数,而换行符依旧存在缓冲区中。

gets函数会读取字符知道遇到换行符,对于当前的情况来说,其第一个字符就是换行符,所以,它只读取一个换行符。gets函数在执行完读取操作之后,会将换行符转换为\0,这也就是我们为什么看不到内容的原因。

insert修改的方法:在scanf函数调用之后添加一个情况缓存的操作:

fflush(stdin);

这样insert就可以工作了。