- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                getchar();上面介绍方法有一个大缺陷:这里总要选定一个作为结束判断用字符。而这样做之后,该字符就不能再作为输入中正常字符使用了。假如程序需要处理键盘能输入所有字符,或需要处理所有可能字符(在二进制编码范围 0~255内所有字符) ,上面方法就行不通了。此时外部如何通知程序要处理字符都处理完了呢? ;标准库输入函数都为这个问题提供了处理方案。 标准库定义了一个符号常量 EOF(意为End Of  File,文件结束) ,getchar 在读字符时如果遇到文件结束,就返回 EOF 值,说明已经没有输入???(下面将看到,其他输入函数也采用了类似方式) 。
如果把标准输入定向到系统中某个文件,getchar 就会从该文件里一个个地读字符,在用完了所有字符后它就返回符号常量 EOF 值。这样,程序里就可以通过判断返回值是否 EOF,确定被处理文件是否读完。while (1) { 
    c = getchar(); 
    if (c == EOF) break; 
    ... ... /* 对输入实际处理 */ 
} ;如果程序由标准输入读字符,默认情况下该程序将从键盘读入。我们怎样在键盘输入一个文件结束信息呢?不同系统情况可能不同,但通常都可以用组合键输入这个信息。许多系统里可以用 Ctrl-Z 或 Ctrl-D 送入文件结束信息。在程序运行时,如果人按 Ctrl-Z 键,
getchar 读到这里时返回就是EOF 值,从而导致循环结束。 ;例:写一个程序,从标准输入中读入一个个字符,并将读入字符复制到标准输出,直到遇到文件结束: 
 
#include stdio.h 
int main () { 
    int c; 
    while ((c = getchar()) != EOF) 
        putchar(c); 
    return 0; 
} 
 ;统计用户输入字符个数;
例:写程序读入一系列数值,把每个数据作为圆盘半径,分别算出圆盘面积并输出。
 #include stdio.h 
void pc_area (double r) { 
    if (r  0) 
        printf(Input error: %f\n, r); 
    else 
        printf (r = %f, S = %f\n, r, 3* r * r); 
}  
int main () { 
    double x; 
    while (scanf(%lf, x) == 1) pc_area(x); 
    return 0; 
} 
 ;例:写一个程序,它读入一系列数值,统计数据个数,确定其中最小值与最大值,并计算出所有数据平均值。 
#include stdio.h 
 
int main () { 
    double sum = 0.0, biggest, smallest, x; 
    int count = 1; 
    scanf(%lf, sum); 
    biggest = smallest = sum; 
 
    while (scanf(%lf, x) == 1) { 
        sum += x; 
 ++count; 
        if (x  biggest) biggest = x; 
        if (x  smallest) smallest = x; 
    } 
 
    printf(Count of numbers: %d\n, count); 
    printf(Biggest: %f, Smallest: %f, Average: %f\n, 
           biggest, smallest, sum / count); 
 
    return 0; 
} 
 ;printf(Please enter an integer: ); 
scanf(%d, n); 
for (i = 0; i  n; ++i) ... 
多么熟悉语句!;printf(Please enter an integer: ); 
while (scanf(%d, n) != 1) { 
    while (getchar() != \n)  ; 
    printf(Input incorrect. An integer again.); 
} 
for (i = 0; i  n; ++i) ... ;; 一个通用带检查整数输入函数;;谢谢
                
原创力文档
                        

文档评论(0)