ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

scanf函数详解(摘自CPrimer第六版中文版第四章)

2019-05-26 19:48:50  阅读:301  来源: 互联网

标签:字符 pet scanf 第六版 printf CPrimer age 输入


4.4.5 使用 s c a n f ()
刚学完输出, 接下来我们转至输入—— 学习 scanf ( ) 函数。C 库包含了多个输入函数, scanf ()是最通用的一个, 因为它可以读取不同格式的数据。当然, 从键盘输入的都是文本,因为键盘只能生成文本字符: 字母、数字和标点符号。如果要输入整数 2014 , 就要键入字符 2、0、1 、4。如果要将其储存为数值而不是字符串, 程序就必须把字符依次转换成数值, 这就是 scanf ()要做的。scanf ()把输入的字符串转换成整数、浮点数、字符或字符串, 而 printf ()正好与它相反,把整数、浮点数、字符和字符串转换成显示在屏幕上的文本。

scanf ( )和 printf ( ) 类似, 也使用格式字符串和参数列表。scanf ()中的格式字符串表明字符输入流的目标数据类型。两个函数主要的区别在参数列表中。printf ( ) 函数使用变量、常量和表达式,而 scanf ( )函数使用指向变量的指针。这里, 读者不必了解如何使用指针,只需记住以下两条简单的规则:
• 如果用 scanf ( ) 读取基本变量类型的值, 在变量名前加上一个&;
• 如果用 scanf ( )把字符串读入字符数组中, 不要使用&。程序清单 4.15 中的小程序演示了这两条规则。

程序清单 4.15      input.c 程序

#include <stdio.h>

int main(void)
{
    int age;
    float assets;
    char pet[30];
    printf("Enter your age,ssets,and favorite pet . \n");
    scanf("%d %f",&age,&assets);
    scanf("%s",pet);
    printf("%d $%.2f %s \n",age,assets,pet);

    return 0;
}

下面是该程序与用户交互的示例:
Enter your age , as ssets , and favorite pet .
38
92360.88 llama
38 $92360. 88 llama
scanf ()函数使用空白(换行符、制表符和空格)把输入分成多个字段。在依次把转换说明和字段匹配时跳过空白。注意, 上面示例的输入项(粗体部分是用户的输入)分成了两行。只要在每个输入项之间输入至少一个换行符、空格或制表符即可, 可以在一行或多行输入:

Enter your age, assets , and favorite pet.

42

2121.45

guppy

42   $2121.45  guppy


唯一例外的是%c转换说明。根据% c , scanf ()会读取每个字符, 包 括空白。我们稍后详述这部分。
scanf ( )函数所用的转换说明与 printf ( )函数几乎相同。主要的区别是,对于 float类型和double类型 ,printf () 都使用 %f、%e、%E、%g、%G 转换说明。而 scanf( )只把它们用于 float 类型,对 于 double类型时要使用 l 修饰符。表 4.6 列出了 C99 标准中常用的转换说明。

 

                   表 4.6 ANSIC 中 scanf( ) 的转换说明

 

标签:字符,pet,scanf,第六版,printf,CPrimer,age,输入
来源: https://www.cnblogs.com/GoldCrop/p/10927222.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有