原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处
、作者信息和本声明。否则将追究法律责任。
http://kymsha.blog.51cto.com/647951/289689
- #define BOOL int
- #define TRUE 1
- #define FALSE 0
- int main (void)
- {
- BOOL flag=TRUE;
- if(flag)
- {
- printf("true");
- }
- else
- {
- printf("false");
- }
- }
- #include <stdio.h>
- #include <stdlib.h>
- #include <limits.h>
- int main (void)
- {
- printf("int的最小值是:%d;最大值是:%d",INT_MIN,INT_MAX);
- return 0;
- }
- int main (void)
- {
- char ch;
- scanf("%c",&ch);
- printf("%c",ch);
- return 0;
- }
- int main (void)
- {
- char ch='a';
- int count=0;
- do
- {
- scanf("%c",&ch);
- count++;
- }while(ch!='\n');
- printf("%d",count-1);
- }
- int main (void)
- {
- char ch='a';
- int count=0;
- scanf("%c",&ch);
- while(ch!='\n')
- {
- count++;
- scanf("%c",&ch);
- }
- printf("%d",count);
- }
- int main (void)
- {
- char c;
- int result;
- c=getchar();
- result = putchar(c);
- printf("\nc:%c;result:%d",c,result);
- }
- int main (void)
- {
- while(getchar()!='\n');
- return 0;
- }
- int main (void)
- {
- char c;
- while((c=getchar())==' ');
- switch(c)
- {
- case 'a':
- printf("a");
- break;
- case 'q':
- printf("q");
- break;
- default:
- printf("others");
- break;
- }
- }
- int main (void)
- {
- int i ;
- char c;
- scanf("%d",&i);
- c=getchar();
- printf("%c",c);
- }
------------------
| 【总结】 |
------------------
第一:要注意不同的函数是否接受空格符、是否舍弃最后的回车符的问题!
读取字符时:
scanf()以Space、Enter、Tab结束一次输入,不会舍弃最后的回车符(即回车符会残留在缓冲区中);
getchar()以Enter结束输入,也不会舍弃最后的回车符;
读取字符串时:
scanf()以Space、Enter、Tab结束一次输入
gets()以Enter结束输入(空格不结束),接受空格,会舍弃最后的回车符!第二:为了避免出现上述问题,必须要清空缓冲区的残留数据,可以用以下的方法解决:
方法1:C语言里提供了函数清空缓冲区,只要在读数据之前先清空缓冲区就没问题了!
这个函数是fflush(stdin)。
方法2:自己取出缓冲区里的残留数据。
(说实话这个语句我也没看懂,呵呵!为什么格式控制是这样的!希望高手指点一下!)
scanf("%[^\n]",string);