正文

[025] while((c=getchar())!='\n')2006-02-21 21:59:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wentao/10345.html

分享到:

while ((c = getchar()) != '\n');  作用:从键盘输入字符,直到输入回车为止, 最后的分号为循环体,即一个空语句 等价于:c = getchar();while( c != '\n' )    c = getchar(); 当然也可用for语句实现,如:for( ; (c = getchar()) != '\n' ; )    printf("%c", c) ;其作用是每读入一个字符后立即输出该字符,直到输入一个“换行”为止。注意:从终端键盘向计算机输入时,是在按Enter键以后才送到内存缓冲区中去的。不是从终端敲入一个字符马上输出一个字符,而是按下Enter键后数据送入内存缓冲区,然后每次从缓冲区读一个字符,再输出该字符。#include <stdio.h>int main(){    char c;    for( ; (c = getchar()) != '\n' ; )        printf("%c", c) ;    return 0;}运行结果:====================afdasdfkjffl&%#$879e↙afdasdfkjffl&%#$879e==================== 用while语句实现如下:#include <stdio.h>int main(){    char c;    c = getchar();    while( c != '\n' )    {        printf("%c", c);        c = getchar();    }     return 0;}★ 可以把循环体和一些与循环控制无关的操作也作为for语句的“括号内条件语句”,这样程序可以短小简洁。但过分利用这一特点会使for语句显得杂乱,可读性降低,建议不要把与循环控制无关的内容放到for 语句中。 ---------------------------------------练个题:《C程序设计》(谭) P120  6.2 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。#include <stdio.h>int main(){    char c;    int letter = 0, digit = 0, space = 0, other = 0;    printf("Enter some characters:\n");    while((c = getchar()) != '\n')    {    if(c >= 'a' && c <= 'z' || c>= 'A' && c <= 'Z')        letter++;    else if(c == ' ')        space++;        else if(c >= '0' && c <= '9')            digit++;            else                other++;    }    printf("letter:%d, space:%d, digit:%d, other:%d\n", letter, space, digit, other);    return 0;} 运行结果(VC):===================================================Enter some characters:asdf#4094l lfdslkf[30 lkdf]30- 093odf↙letter:19, space:3, digit:11, other:4=================================================== 

阅读(7409) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册