有时候scanf("%c",&ch)本应该阻塞等待用户输入一个char型数据的,但为什么会跳过呢? 例:在该程序段中,  int year;    printf("请输入一个年份:\n");    scanf("%d",&year);   // setbuf(stdin,NULL);//或者直接用getchar();    //在键盘输入一字符,显示其类型(数字.大写字母.小写字母.其他)    char ch;    print…
scanf,sscanf利用format跳过干扰的空格 用了一点时间做读取配置部分的代码,希望一次记录上读取N个数据, 希望读取的格式就是一个IP地址加上端口号,希望把IP地址读取到4个短整数里面,端口号读取到另外的一个短整数.文字格式类似“192.120.1.120#8080”,但结果发现因为为了对齐,中间的空格干扰了读取. 读取的输入可能是这样“192.120.1.120   #     8080”,甚至可能是 " 192 .168 . 1 .120 # 8080 " 郁闷.goo…
scanf("%c", &ch)和scanf(" %c", &ch): %c会读取回车和空格,所以一定要使用后者,即在%c前面加一个空格. %s用于读取char[]时,会忽略空格和回车,所以不会有这些问题.…
本文链接:http://www.cnblogs.com/xxNote/p/4008668.html 今天看书的时候遇到scanf函数与缓冲区的问题,产生了一些猜想即:应该有一个指针来记录缓冲区中读取到了哪个字符.书上说scanf函数在%d.%f.%lf等数值控制字符时会跳过缓冲区中的空格.回车.还有制表符(TAB),若遇到+*等字符则会失败而不再跳过:而scanf函数在%c或%s控制字符时则会取走缓冲区的所有字符.此时产生一个疑问,这里的跳过说的是直接改变前面猜想中的那个指针的值还是仅仅跳过而不…
一.scanf和gets 1.不同点: char string[50]; scanf("%s",string); //当遇到回车,空格和tab键会自动在字符串后面添加'\0',但是不能接受回车,空格和tab键,他们仍会留在输入的缓冲区中. gets(string); //遇到回车认为输入结束,并用'\n'替代 '\0'.回车键不会留在输入缓冲区中 2.相同点: 字符串接受结束后自动加'\0'. 二.scanf("%c",&c) 与 scanf("…
printf()的返回值为其输出字符串常量的字符数(注意字符数与字数的区别)注意计数针对所有的打印字符,包括空格和不可见的换行字符(不包括字符串的空字符). scanf()函数返回成功读入的项目的个数.即在下面程序中scanf的返回值为1.如果没有读取任何项目(如它期望一个数字但是出入了一个非数字字符),它会返回值0.当它检测到“文件结尾”时,它返回EOF(EOF是文件stdio.h中定义的特殊值.一般,#define 指令把EOF 的值定义为 -1).    int n;     float …
在论坛上看到有人提出一个如下的问题,在此总结一下. 原问题: http://topic.csdn.net/u/20110414/22/90d0606c-9876-48e4-9b69-bd8bd8a41897.html #include <stdio.h> int main() { int ival1 = 123, ival2 = 1; char ch = 't'; scanf("%d%d", &ival1, &ival2); scanf("%c&q…
学的是C++,用cin cout也用的很顺溜,写自己的类时重载"<<"与">>"运算符也很爽,但是发现在刷算法竞赛题时,cin cout很没优势,输入量大时一道题我用cin cout要50ms,用scanf printf只要10ms.20ms,这个就差的太大了时间都花在输入输出上也是很郁闷.于是开始使用C的输入输出标准.输出很正常,也可以轻松更改double输出的精度,c++还要个iomanip头文件,还烦一点.格式化字符%u %d %ld…
C语言: /* ----------------------------------- 当n = 1, 只有1中跳法:当n = 2时,有两种跳法:当n = 3 时,有3种跳法:当n = 4时,有5种跳法:当n = 5时,有8种跳法 所以:tiaofa(n) n=1时,tiaofa(1) = 1 n=2时,tiaofa(2) = 2 n>2时,tiaofa(n) = tiaofa(n-1) + tiaofa(n-2) ----------------------------------- */ #…
if 语句: if 语句被称为分支语句(branching statement)或选择语句(selection statement) if 语句的通用形式: if (expression) statement 如果 expression 为真,则执行 statement:否则,跳过 statement 与 while 循环一样,statement 可以是一条简单的语句也可以是复合语句 if 语句 和 while语句的区别:如果满足条件可执行的话,if 语句只能测试和执行一次,而 while 语句…