精华内容
下载资源
问答
  • C语言实现数据输入输出函数

    千次阅读 2017-08-04 16:36:00
    但提供了一些可完成数据输入输出的标准函数,4个基本输入和输出函数为: getchar()、putchar()、printf()scanf() 。 输出 putchar()函数 功能:向终端输出一个字符。 格式: putchar (ch)  #include ...

    C语言实现数据输入与输出的函数


    C语言中没有提供对数据的输入和输出语句。但提供了一些可完成数据输入输出的标准函数,4个基本输入和输出函数为:
    getchar()、putchar()、printf()和scanf() 。

    输出

    putchar()函数

    功能:向终端输出一个字符。
    格式:   putchar (ch)
     #include  "stdio.h"
    int main()
    {  
          char a,b,c; 
          a='B';b='O';c='Y';
           putchar(a);
           putchar(b);
           putchar(c);
           putchar('\n');
    }

    printf()函数

    功能:向终端输出一个字符。
    格式:   printf("%",)

     #include  "stdio.h"
    int main()

    {

     int a =1;


    printf (" %d",a)

    }


    printf("%") 要输出什么形式的值就在百分号后面加什么格式字符。


    输入

    getchar()函数

    功能:  从输入设备输入一个字符。
    格式:   getchar ()
     例       #include  <stdio.h>
                           int  main()
                           {
                                   char  c;
                                   c=getchar();
                                   putchar(c);
                            } 



    scanf()函数
    功能:输入若干个任意类型的数据。
    格式:scanf("格式控制",参数1,参数2,参数3, )


    int main()
    {          
         int a;  char  b;  float  c;
         scanf("%d%c%f", &a,&b,&c);
         printf("%d,%c,%f\n",a,b,c);
    }







    展开全文
  • Python 的基本数据类型,简单学习一下,即可入门;输入输出函数也是必备知识点哦~

    学习一门语言应该是一件充满乐趣的事情,为什么要把它变难呢?

    已完成的文章

    标题链接
    1. 这才是 Python 学习的正确起手姿势,滚雪球学 Pythonhttps://dream.blog.csdn.net/article/details/109586142

    本系列文章将在2021年春节前完成,欢迎关注,点赞,评论 --- 梦想橡皮擦

    二、Python 基本数据类型与输入、输出函数

    2.1 基本数据类型

    对于任何一门语言都存在一些基本类型,Python 也不例外,只不过数据类型在 Python 中要远远比其他语言简单,基本分为以下几种。

    1. 数值数据类型,常见的是整数和浮点数
    2. 布尔值数据类型,就是常说的真和假
    3. 字符串数据类型

    这里要注意,提及到数据类型,特指的是变量的数据类型,在具体学习前,先学会如何看 Python 中的数据类型,才好下手学习。
    这个看数据类型是啥的函数,叫做 type,见名之意,所以咱们变量起名字的时候,也要学习一下官方命名技巧。

    例如,看一下一个值为 10 的变量 x 的数据类型,代码如下:

    x = 10
    print(type(x))
    

    运行结果为

    <class 'int'>
    

    该输出结果就表示变量 x 的数据类型是整数,你可以用同样的办法测试一个小数。

    x = 10.1
    print(type(x))
    
    

    运行结果显示为:

    <class 'float'>
    

    没错,这个是浮点数。

    2.1.1 数值数据类型

    上文你已经接触到了 Python 中的两种数值数据类型,一个叫做整数,一个叫做浮点数,对应到数学上的区别就是一个带小数点,一个不带,其实这就是最根本的区别。

    如果整数和浮点数相加,最终的结果是浮点数,Python 会自动给转换过去,代码如下:

    x = 10.1
    y = 10
    z = x + y
    print(type(z))
    

    运行代码,可以核对下 z 的数据类型是否是 float 即浮点数。

    2.1.2 整数的不同形式表示

    对于编程语言学习者来说,你一定听说过计算机处理的都是二进制,所以编程语言学起来特别难?What?学习编程语言跟二进制是有关系,但是跟你学会一门赚钱的手艺确没啥关系。或者我说的在直接一些,你在北京拿个 1W 块钱的薪水,各种进制的转换可能你都用不到。

    将整数显示成二进制格式
    注意一会还会将整数显示成八进制与十六进制,这里处理的都是整数,也就是 1,2,3,4 这种不带小数点的,浮点先不要考虑。

    又一次需要用到一个后续才会明确的知识点,叫做 Python 内置函数,将整数转换成二进制格式显示用到的函数叫做 bin,代码如下:

    x = 10
    print(bin(x))
    

    输出结果为:

    0b1010
    

    二进制以 0b 开头,后面都是 1,0 排列,如果你看到 Python 代码中出现了这样的整数,要认识这就是一个普通的数字,只是展示方式不同。

    将整数显示成八进制格式
    将整数转换成八进制用到的内置函数是 oct,具体代码可自行尝试,八进制显示的数字以 0o 开头。
    将整数显示成十六进制格式
    0x 开头的数字为十六进制格式展示,转换用函数为 hex
    截止到这里,你已经对整数与整数的不同形式展示有了初步的认知,并且这些都不重要,重要的是你学习之后,看到 Python 代码中出现以这些符号开头的内容,你知道它就是一个普通的整数就好了。

    2.1.3 数据类型强制转换

    这个地方只是类型强制转换的冰山一角,为何学习也是因为你已经掌握了整数和浮点数,大概也对它们之前的区别有了那么一丝认识。其实它们之前还可以进行互相的转换,只不过转换你要承担一些风险,为啥呢,往下看。

    x = 10.5
    print(int(x))
    

    上述代码,我将浮点数进行了类型强制转换,注意在 x 前面套了一个 int 函数的壳,函数后面咱才会学习,现在你能模仿代码编写,能看懂我说的是啥就行。

    在变量 x 外面套了一个 int()函数,然后运行,输出的结果是 10,风险出现了,浮点数转换成整数,小数丢掉了…是真正的丢掉了,这种场景在后续编程中你会经常碰到。

    int 其实也是 Python 的一个内置函数,它会尝试将任何数据类型的变量转换成整数,注意是任何数据类型的变量。

    同理,你如果能猜到将任何数据类型的变量转换成浮点数的函数名为 float,证明你已经开始慢慢摸到 python 的精髓了。

    好,到现在,又学习到了两个内置函数,一个 int,一个 float,请一定要实际的打一下代码,眼睛会,手不一定会。

    2.1.4 扩展几个数值数据类型常用的函数

    虽然学的不多,你现在应该注意到一个词 – 函数出现的频率在 Python 中极高,这也是为什么很多其他语言的使用者,会把 Python 藐视成一堆函数凑成的语言了,哼~浅薄者。

    数值数据类型常用的函数,这里简单举几个例子,后面还会详细学习。

    • abs() 计算绝对值
    • pow() 次方运算
    • round() 四舍五入
    • max() 取最大值
    • min() 去最小值

    参考代码如下,临摹 2 遍知道是在干啥就行,下面的代码涉及了函数中参数的概念,不做过多的解释。

    # abs() 计算绝对值
    a = -1
    print(abs(a))
    # pow() 次方运算
    x = 2
    c = 3
    print(pow(x,c))
    # round() 四舍五入
    
    d = 34.6
    print(round(d))
    # max()  取最大值
    print(max(1,2,3))
    # min() 去最小值
    print(min(9,10,6))
    
    

    2.1.5 布尔值数据类型

    布尔来自英文 boolean 的音译,在 Python 中布尔值有两种,一个是真(True),另外一个就是假(False),使用 type 函数测试数据类型布尔值得到的是 bool。
    注意 bool 在有的地方也会归为整数,是因为真(True)被强制转换之后等于 1,假(False)被前置转换之后等于 0。
    代码如下:

    x = True
    print(int(x))
    print(int(False))
    

    布尔值以后会经常用在条件判断上,属于必须掌握的知识点,后续咱还会碰到它。

    2.1.6 字符串数据类型

    字符串是 Python 中使用场景最多的数据类型了,也是知识点最多的数据类型,一般情况下,两个双引号(")或者两个单引号(')中间的部分就是字符串,在使用的时候一定要注意嵌套问题。例如下述代码:

    my_name = "梦想橡皮擦"
    print(my_name)
    
    my_name = '梦想橡皮擦'
    print(my_name)
    
    my_name = '梦想"橡皮擦'
    print(my_name)
    print(type(my_name))
    

    下面这句话要记住,单双引号都是成对出现的,双引号里面要嵌套单引号,例如上述第三段代码,单引号里面要嵌套双引号。

    字符串的连接
    两个字符串通过 + 可以进行连接,这里的加号就不是数字之间加法的含义了,测试如下:

    a = "my"
    b = "name"
    
    c = a+b
    print(c)
    

    数字与字符串相加,会提示错误,如果不想报错,可以通过 str 函数将数字转换成字符串,例如:

    a = 123
    b = "name"
    # str(a) 将整数变量a转换成字符串
    c = str(a) + b
    print(c)
    
    

    多行字符串
    在前文已经学习了三引号可用于注释,其实三引号真正的用途依旧是字符串场景,表示多行字符串。

    my_str = """
    我是字符串的第一行
    我是字符串的第二行
    我是梦想橡皮擦
    我还是曾经那个少年
    """
    print(my_str)
    

    转义(逸出)字符
    在字符串中有一些特殊的字符,需要特别处理,例如,就想在单引号中使用单引号,那需要如下格式编写:

    a = 'I\'m a girl '
    print(a)
    
    

    注意,使用\' 之后就可以在单引号字符串中使用单引号了,\' 就是转义字符。常见的转义字符如下:

    转义字符含义
    单引号
    "双引号
    \t制表符
    \n换行
    \反斜杠

    还有其他转义字符,初学阶段不做展开,以上几个在代码中尝试两遍,还是知道是干啥的即可。
    当然有些时候,你需要避免转移字符进行转义,那需要在整体字符串前增加一个特殊的字母 r,字符串前面增加特殊字符有很多,今天只学习这一个。例如下述代码。

    a = r"I\nm a girl"
    print(a)
    

    此时的\n不会转义成换行符,输出内容就是字符串原有的样子:

    I\nm a girl
    

    使用pycharm这款工具,你能很清楚的认出转义字符来,它存在颜色区分:
    2. 无门槛学会数据类型与输入、输出函数,滚雪球学 Python

    字符串快速复制
    Python 中有一个独特的小技巧,可以快速复制字符串,使用的是数学符号 *,例如下述代码,将快速复制一堆 # 号。

    print("#"*100)
    

    2.2 输入与输出

    本小节核心学习的两个函数,一个是 print,另一个是 input,在学习它们两个之前,在补充一个内置函数 help 该函数可以查看其它函数的使用文档。比如使用 print 测试:

    help(print)
    

    输出内容如下图所示:
    2. 无门槛学会数据类型与输入、输出函数,滚雪球学 Python
    这其中就包含了 print 函数的完整说明,最重要的部分如下:

    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    

    其中:

    • value 表示要输出的数据,可以多个,用逗号 , 分隔
    • sep 输出多个数据时,分隔符号,默认是空格
    • end 输出一行末尾输出的符号
    • file 输出位置,默认输出控制台,就是黑窗口中,可以设置到具体文件
    • flush 是否清除数据流缓冲区,默认为 False(该内容先不做涉及)

    以上这些其实准确的说法是函数参数

    编写测试代码,可临摹运行:

    # 输出多个数据
    print("hello","dream")
    
    # 多个数据输出的分隔符
    print("i","love",sep="#")
    

    运行结果和其它参数自行测试,上述内容重点为多个数据输出,即 print(a,b,d,d) 必须掌握。

    2.2.1 格式化 print 输出

    在很多教材中本部分内容会占用比较多的时间,其实大可不必,因为东西太杂,学过反而忘记了,不如简单学习在大脑留下一个“恩,有这个东西”的痕迹即可。

    格式化输出就是这样一个碎的知识点,格式化输出 print 的意思就是按照你的意思输出东西到任何载体上。

    首先要学习的就是 格式化字符,常见的有下面这几个。

    • %d 整数输出
    • %f 浮点数输出
    • %x 十六进制输出
    • %o 八进制
    • %s 字符串输出,其实会这一个就行了

    例如下述代码就是一个案例:

    name = "橡皮擦"
    age = 18
    score = 100
    
    # 格式化一个变量输出
    print("我是 %s" % name)
    # 格式化多个变量输出
    print("我是 %s 今年 %d岁了,我考试得了%d分" % (name,age,score))
    
    

    注意格式化的时候,前面是一个待格式的字符串,把格式化字符作为一个特殊的符号放在一个字符串里面,相当于占了一个坑位,字符串后面跟着一个 %,该符号固定为 %,在后面是替换的内容,可以是变量名,也可以直接是值,如果前面的占位的是 %d,后面就是数字,如果是 %s,后面就是字符串。一般这里会配上下图进行说明:
    2. 无门槛学会数据类型与输入、输出函数,滚雪球学 Python
    如果占位的格式化字符和后面给的实际变量的值匹配不上,例如前面是 %d,后面 age 给了一个字符串,就会报错:

    name = "橡皮擦"
    age = 18
    score = 100
    
    print("我是 %s" % name)
    print("我是 %s 今年 %d岁了,我考试得了%d分" % (name,"nnn",score))
    
    

    但是如果前面是 %s,后面给字符串,就会自动转换过去。

    name = "橡皮擦"
    age = 18
    score = 100
    
    print("我是 %s" % name)
    print("我是 %s 今年 %s岁了,我考试得了%d分" % (name,18,score))
    

    所以一般不严格的时候,前面的占位符通通用 %s 就可以了。不严谨,但是好用啊~

    精准控制格式化的输出
    精准化输出主要用于浮点数,因为浮点数存在小数点,控制小数点显示的位数就显得重要了,本文不做过多的涉及,经验告诉我,很多同学学过去也就忘记了,你只需要记住 Python 也可以精准控制浮点数的显示就可以了。

    2.2.2 format 函数

    上述 % 在学习阶段使用一下还可以,在实际的格式化输出中,更多的还是使用 format 进行操作,format 在使用的时候,通过 {} 符号进行占位,例如:

    print("我是{},今年{},考试得了{}".format(name,age,score))
    

    所有需要占位的地方都使用 {} 解决,不用去记住各种类型,也不会出现 % 这个莫名奇妙的符号。

    2.2.3 input 数据输入

    input 执行的和 print 恰好想法,通过 help 查看一下:
    2. 无门槛学会数据类型与输入、输出函数,滚雪球学 Python
    参数比较简单只有一个输入提示语。测试代码:

    name = input("请输入你的姓名:")
    print("输入的姓名为{}".format(name))
    

    代码运行会要求你输入自己的姓名,回车之后会格式化输出。默认情况下 input 获取的输入数据会存储到一个变量中,本例为 name,该变量类型为字符串类型,如果你需要获取用户输入数字,记得通过 int 进行一下转换。

    input 比较简单,本文先介绍这些。

    2.3 这篇博客的总结

    以上内容核心介绍了整数、浮点数、布尔与字符串数据类型,重点要掌握的是类型之间的转换与字符串的初步认识,对于格式化输出部分掌握 format 即可应付接下来的大多数场景,其余内容酌情遗忘吧,毕竟学编程还是蛮费脑力的。

    最后一碗毒鸡汤

    好好学下去 每天都有新打击O(∩_∩)O 哈哈~

    想学Python爬虫,可以订阅橡皮擦专栏哦~
    https://dream.blog.csdn.net/article/details/86106916

    展开全文
  • c语言中数据的标准输入输出函数

    千次阅读 2018-03-22 12:40:51
    在c程序中实现程序输入输出的,主要是 printf ( ) 函数和scanf ( )函数。这两个函数用的时候必须指定数据的格式,%d或%c之类的,成为格式控制。下面会详细说明。1. printf( )函数用来向屏幕输出若干个任意类型的数据...
    
    

    在c程序中实现程序输入输出的,主要是 printf ( ) 函数和scanf ( )函数。这两个函数用的时候必须指定数据的格式,%d或%c之类的,成为格式控制。下面会详细说明。
    1. printf( )函数用来向屏幕输出若干个任意类型的数据。如:printf("%d,%c", t,c);
        printf("%d", 97);  这个屏幕打印结果为97。因为 %d是用来输出一个十进制整数,所以输出为97。
       printf("%c", 97); 但是这个打印结果为小写字母a,因为%c是用来输出一个字符,字母a对应的ASCII码值为97,在输出之前,系统会自动将该整数作为ASCII码值转换成对应的字符。

    2. 用scanf( )函数输入数据。如scanf("%d%d", &m, &n);
       scanf( )函数中格式控制对应的应是变量地址 &m,不要写成变量名,输入一个数据肯定是要知道这个变量的地址的,不然没法输入。输入数据时,在对应位置上应输入与格式控制的一样的字符。

    3.用getchar( )输入一个字符
       getchar ()函数每次只能输入一个字符,如果想输入多个字符,那就用多个getchar( )函数。

    4.putchar( )函数与getchar( )函数对应,用来输出一个字符。
    #include <stdio.h>
    int main()
    {
    	char a, b, c;
    	a = getchar();
    	b = getchar();
    	c = getchar();
    	putchar(a);
    	putchar(b);
    	putchar(c);
    	system("pause");
    	return 0;
    }

       用getchar( )函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋值作为表达式,如下:
    #include<stdio.h>
    int main()
    {
    	putchar(getchar());
    	putchar(getchar());
    	putchar(getchar());
    	system("pause");
    	return 0;
    }




    展开全文
  • C语言 基本输入输出函数

    万次阅读 多人点赞 2016-11-03 15:07:57
    1 几组常见输入输出函数在stdio.h头文件中内置了几种输入输出函数,如下列出: printf 与 scanf getchar 与 putchar gets 与 puts 相比之下 printf 与 scanf的功能最为强大,但操作稍显复杂,后两种则功能简单,...

    1 几组常见的输入输出函数

    在stdio.h头文件中内置了几种输入输出函数,如下列出:

    • printf 与 scanf
    • getchar 与 putchar
    • gets 与 puts

    相比之下 printf 与 scanf的功能最为强大,但操作稍显复杂,后两种则功能简单,但针对性较强。


    2 printf函数

    功能:按照规定格式输出指定数据

    2.1.一般形式:如图

    这里写图片描述

    格式控制:由“%”后跟格式字符组成。将输出数据转换为指定格式输出,字符串原样输出,转义字符对输出形式进行控制。

    2.2.格式说明

    这里写图片描述

    附加格式说明字符说 明
    -输出的数字或字符以左对齐,右边填空格
    0(数字)输出的空位用0填充。
    m(一个正整数)输出数据的字段宽度。如果实际位数多于m,按实际位数输出;如果实际位数少于m,则补以空格或0。
    .n(一个正整数)对实数,表示输出n位小数;对字符串,表示截取的字符个数。
    l(字母)输出长整型整数

    2.2.1常见格式输出

    %d —— 以带符号的十进制形式输出整数
    %o —— 以无符号的八进制形式输出整数
    %x —— 以无符号的十六进制形式输出整数
    %u —— 以无符号的十进制形式输出整数
    %c —— 以字符形式输出单个字符
    %s —— 输出字符串
    %f —— 以小数点形式输出单、双精度实数
    %e —— 以标准指数形式输出单、双精度实数
    %g —— 选用输出宽度较小的格式输出实数
    

    2.3 %d格式符

    格式: %[-][0][m][l]d

    说明:

    • %d 按整型数据的实际长度输出。

    • %[0]md 以m指定的字段宽度输出,如果数据的位数小于m,则左端补以空格;若m前面有“0”,则左端补以0。

    • %-md 以m指定的字段宽度输出,左对齐。

    • %ld 输出长整型数据。

    2.4 %c格式符

    格式:%[m]c

    说明:输出一个字符。输出数据可以是单个字符,或一个范围在0~255之间的整数。

    例:

    #include <stdio.h>
    main( )
    {   char x=‘a’;  int i=98;
        printf("%c,%d\n",x,x);
        printf("%c,%d\n",i,i);
    }
    
    // output
    a,97
    b,98

    2.5 %s格式符

    格式:%[-][m][.n]s

    说明:

    • %s 直接输出指定字符串。

    • %ms 输出字符串占m列,右对齐。m小于字符串长度时原样输出,大于字符串长度时不足补空格,下同。

    • %-ms 输出字符串占m列,左对齐。

    • %m.ns 输出字符串前n个字符,占m列,右对齐。

    例:

    #include<stdio.h> 
    
    void main(){
        printf("%3s,%-6s,%-5.2s,%4.3s,%.3s,","hello", 
        "hello","hello","hello","hello");
    }
    输出结果:
    hello,hello ,he   , hel,hel,
    

    2.6 %f格式符

    格式: %[-][0][m][.n][l]f

    说明:

    • %f 整数部分全部输出,小数部分输出6位(四舍五入)。

    • 0 右边补0满足小数位数,或左边补0满足m列

    • %m.nf 输出数据共占m列,小数占n位,右对齐。只有m时,当m大于字符串长度则需补足m列,当m小于字符串长度则与%f同

    • %-m.nf 输出数据共占m列,小数占n位,左对齐。

    • %lf 以双精度输出

    例:

    #include<stdio.h> 
    
    void main(){
    
        float f=3.14159;
        printf("%f,%07.3f,%-7.3f,%10f,%.3f,",f,f,f,f,f);
    }  
    
    // output:
    3.141590,003.142,3.142  ,  3.141590,3.142,

    2.7 %e格式符

    格式:%[-][0][m][.n]e

    说明:

    • %e:输出数据共占13位,其中整数部分为1位非零数字,小数点占1位,小数部分为6位,指数部分e占1位,指数符号占1位,指数为3位。若输出数据为负数,还应增加一位整数部分的符号位。

    • %m.ne 输出占m列,小数位为n项(四舍五入)。m小于输出宽度时原样输出,大于输出宽度时补足空位

    • –设置左对齐

    如下图
    这里写图片描述

    例:

    #include<stdio.h> 
    
    void main(){
        printf("\n,%10.1e",31.5);
    }
    // output
    ,  3.2e+001

    2.8 %o、%x和%u格式符

    格式: %[-][0][m][l]o(x或u)

    说明:
    将内存单元中的二进制数(包括符号位)直接转换成八进制数、十六进制或十进制数输出。

    • %o 输出无符号八进制
    • %x 输出无符号十六进制
    • %u 输出无符号十进制

    例:

    #include<stdio.h> 
    
    void main(){
        int i=-1;
        printf("\n%d,%o,%x,%u",i,i,i,i);
    }
    
    // output
    -1,37777777777,ffffffff,4294967295

    例:

    #include<stdio.h> 
    
    void main(){
        unsigned char ch1 = 255; // 1111 1111  ,1字节
        char ch2 = -128;
        // %hh 限定了字符为8位一个字节 
        // %hhd 有符号十进制字符型 %hhu 无符号十进制字符型
        printf("\n\n%hhd,%hhu,%hho,%hhx",ch2,ch1,ch1,ch1);//128,255,377,ff
        // %h 限定了16位2个字节     
        unsigned short sh1 = 65535; // 1111 1111 1111 1111 ,2字节
        short sh2 = -32767; 
        printf("\n%hu,%hd,%ho,%hx",sh2,sh1,sh1,sh1);  // 32769,-1,177777,ffff
    
        // %l 限定了32位4个字节 
        unsigned long ulong = 4294967295; //1111 1111 1111 1111 1111 1111 1111 1111  ,4字节
        long slong = -2147483647;
        printf("\n%ld,%lu,%lo,%lx",slong,ulong,ulong,ulong); // -2147483647,4294967295,37777777777,ffffffff
    
        // %ll 限定了64位8个字节 
        unsigned long long ull= 4294967295;
        long long ll = -2147483647;
        printf("\n%lld,%llu,%llo,%llx",ll,ull,ull,ull);  // -2147483647,4294967295,37777777777,ffffffff
    
    
        // %e指数输出
        long double lb = 198888888888;
        printf("\n%Lf,%Le,%Lo,%Lx,%Lg",lb,lb,lb,lb,lb);  // 0.000000,5.180393e-317,47776740,9ffdd0,5.18037e-317
        printf("\n%La,%LA",lb,lb); // 输出十六进制的指数形式  0x0.000000p-1022,0X0.000000P-1022
    }

    2.9 %g格式符

    根据数值的大小,自动选择用f格式或e格式输出实数。输出时选择占宽度较小的一种,且不输出无意义的零。

    例:

    #include<stdio.h> 
    
    void main(){
        float f=3.14159;
        printf("\n%e,%f,%lf,%g",f,f,f,f);
    } 
    // output
    3.141590e+000,3.141590,3.141590,3.14159

    2.10 使用printf的注意事项

    • 不同类型的数据应使用相应类型的格式字符说明其输出形式,以保证显示结果符合预期。

    • 格式字符中,除了X、E、G外,其他均用小写字母,如“%d”不能写成“%D”。

    • 如需输出双引号,应在“格式控制”中表示为转义字符的形式并用单引号引起来,即“\””。

    • 如需输出字符“%”,在“格式控制”中用连续两个“%”即可。
      如:printf(“%d%%”,10);

    • 当“格式控制”中格式符个数少于输出表中的输出项时,多余的输出项不予输出。

    • 当“格式符”多于输出项时,多出的格式符输出结果为不定值。


    3 scanf函数

    与printf函数一样,scanf函数也是遵守格式化(format)原则,所谓格式化,是该函数预先给程序员定义了一批输入格式,程序员可以选择其中的某些格式,遵守这些格式,scanf函数就可以按照指定的格式来接收键盘的输入数据了。

    scanf函数只能在控制台程序中使用,有窗口的界面程序无法通过scanf接收按键。当控制台中出现闪烁的光标时,表示程序在等待用户输入数据。在控制台程序中,一般以回车键代表数据输入完毕,下达命令,指示程序开始工作。scanf函数可以接收多个任意类型的数据,但需严格遵守format格式,否则会出错。

    3.1 一般形式:如图

    这里写图片描述

    功能:要求用户从键盘上输入指定格式的数据。
    说明:如果数据不止一个,应在数据之间用一个或多个空格间隔,也可以用回车键或跳格键tab间隔。

    3.2 scanf格式控制

    格式控制

    格式符说明
    d用于输入十进制整数
    o用于输入八进制形整数
    x用于输入十六进制整数
    c用于输入一个字符
    s用于输入字符串,并将字符串送到一个字符数组中。输入时以非空白字符开始, 第一个空白字符结束。字符串以串结束标志“\0”作为其最后一个字符。
    f用于输入实数。输入时用小数点形式或指数形式均可。(输入双精度必须用%lf,否则不能正常输入)
    e与f作用相同

    附加格式

    格式字符说明
    *表示本输入项在输入后不赋给相应的变量。(不存储)
    l(字母)用于输入长整型和双精度实型数据
    m(一个正整数)用于输入长整型和双精度实型数据

    3.3 scanf函数的格式字符串的组成

    • 格式符
      和printf函数类似,scanf函数的格式字符串以%开始,以一个格式字符结束,中间可以插入附加字符。格式符告诉了scanf函数该读取什么样的数据。

    • 空白符
      空白符可以是空格(space,用空格键输入)、制表符(tab,用Tab键输入)和新行符(newline,用回车键输入),或者它们的组合

    • 非空白符
      除去格式说明符合空白符之外,就是非空白符。非空白符在用户输入的时候,也必须一并输入。非空白符使scanf() 在缓冲区中读一个匹配的字符并将这个字符忽略。例如,”%d,%d”使scanf()先读入一个整数,接着必须要读入一个逗号,读入到逗号后,表示格式匹配,将读入的逗号丢弃,而不像读入的整数存储到某个内存空间。读入逗号后,接着读入另一个整数。如发现不能匹配格式字符串,比如没有读到逗号,scanf()返回,读入失败。

    3.4 使用scanf注意事项

    • 1)注意变量表列中,应该是变量的地址。变量的地址通过求地址符&得到。所以在写代码时千万不要遗漏&符号。

    • 2)如果格式字符串中有非空白字符,也就是除了格式控制字符和空白字符之外的字符,则用户在输入的时候一定也要输入这些字符。否则将出现不匹配格式控制字符串的情况。为了使用户正确输入,编程时一定要考虑到用户是否清楚如何输入,最好在需要用户输入前提示如何输入的格式。

    • 3)在用%c格式符时,空格字符和转义字符都被当作有效字符输入

    • 4)以回车作为下达开始解析命令。整个输入以回车结束。

      如果输入的数据满足了scanf对需要,则输入结束,如果回车后数据不够,则回车只当作一个空白符。

    • 5)scanf解析数据,下列情况认为解析出来一个数据:

      读入非字符型数据时,遇到空白字符。有宽度指示时,读入到相应的宽度。如%4d,则只解析4个数字即认为读入这个整数完毕。

    • 6) 读取双精度double浮点数时,最好使用%lf输入,使用%f可能会导致精度损失甚至读取失败。

    3.5 scanf使用示例

    // 1)可以指定输入的数据所占据的字符个数,scanf函数自动按照指示截取所需长度的数据。如:
        int i,j;
        scanf("%3d%3d",&i,&j);  // 输入:1234567↙
        printf("%d,%d",i,j);  // 输出  123,456
    
    // 2)%后面的*格式符,用来表示在解析时,将读入的数据忽略不赋给任何变量。如:
        int i,j;
        scanf("%d %*d %d",&i,&j); // 输入: 123 456 789 
        printf("%d,%d",i,j);    // 输出: 123,789
    // 3)输入数据时不能指定精度。如:
        float f;
        scanf("%7.2f",&f); // 输入 123.456 
        printf("%f23",f); // 输出 0.00000023 
    // 4) 输入双精度数使用%lf
        // 输入双精度浮点数时,务必用%lf,如下错误
        double db;
        scanf("%f",&db);  //输入: 123.456
        printf("%f",db); // 输出 : 0.000000 
    

    4 字符输入输出(getchar/putchar)

    有些时候,仅仅为了在显示器屏幕上打印或从控制台获取一个字符,此时使用功能强大的printf与scanf函数,则显得过于繁琐,C提供了一个库函数putchar/getchar来完成这个简单的任务。

    4.1 putchar

    putchar 函数是字符输出函数, 其功能是在显示器上打印单个字符。putchar函数是一个标准的C语言库函数,它的函数原型在头文件“stdio.h”中。

    1 putchar函数的一般格式:

    putchar(字符数据);
    

    其中的putchar是函数名称。

    2 可以输出的字符类型:

    • 1)字符数据可以是一个字符型变量,如:char c_var= ‘a’; putchar(c_var);

    • 2)字符数据也可以是一个字符常量,如putchar(‘a’);输出结果:a

    • 3)字符数据还可以是一个整数。整数可以是十进制整数,如:putchar(97);输出结果:a

    • 4)字符数据还可以是一个表达式,只要结果是255以内的整数即可。如:
      putchar(‘a’+25);输出结果:z

    • 5)字符数据可以是转义字符。如:
      putchar(‘\n’);结果输出一个换行。putchar(‘\007’); 输出一个提示音

    4.2 getchar

    这个函数和前面介绍的putchar函数刚好相反。

    getchar 函数是得到字符输入函数,其功能是得到用户输入的一个字符。getchar函数是一个标准的C语言库函数,它的函数原型在头文件“stdio.h”中。

    getchar函数的一般格式是:

    char ch;
    ch=getchar();
    

    用户输入的字符就赋给了ch变量。如:

    char ch;
    ch=getchar();  // 获取输入的字符
    printf("%c",ch);

    5 字符串输入输出函数 (gets与puts)

    5.1 puts

    puts函数功能非常单一,在显示器屏幕上输出一个字符串,并换行。

    一般形式:

    puts(字符串);
    

    如:

    puts("你好啊~");
    输出结果:
    你好啊~

    5.2 gets

    gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。此函数在stdio.h头文件中定义的。

    功能

        从stdio流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。 
    

    返回值

        读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferror或feof函数检查是发生错误还是遇到EOF。 
    

    示例

        #include <stdio.h>   
        void main(void)
        {
           char buf[20];  //不要char*p,然后gets(p),这是错误的,因为p没有指向有效的内存,它可能指向任何非法地址 ,造成非法访问异常                 
           gets(buf);
           printf("%s\n", buf);
        }

    与gets/puts类似的还有fgets与fputs,它们一般用于对文件的操作。关于fgets与fputs的用法案例可以参考C语言学习笔记之文件的分割与合并


    后记: 此篇为总结篇,回顾之前的基础知识,留个印记。欢迎交流学习~

    展开全文
  • c语言输入输出函数

    千次阅读 多人点赞 2013-08-26 17:58:16
    本文就c语言常见输入函数进行简单介绍,对比。 ps:由于自己能力有限,时间有限,多数介绍,总结都是摘录网上相关学习资料,下面给出本文参考资料的原文链接。 C语言的输入输出函数  C/C++学习笔记1 - ...
  • C语言的输入和输出函数

    千次阅读 多人点赞 2017-06-15 14:07:30
    C语言提供了两个控制台格式化输入输出函数printf() 函数 scanf() 函数
  • C:C语言输入输出函数总结

    千次阅读 2019-08-05 18:24:09
    文章目录(一) 格式化输入输出函数(1)scanf( )格式化输入函数(2)printf( )格式输出函数(二)单字符输入、输出函数(1)单字符输入函数getchar( )(2)单字符输出函数putchar( )(三)字符串输入、输出函数(1...
  • 方法一:”通过sqrt函数表示根号,在命令行窗口中输入“sqrt(X)”,按回车键可以看到得到相同的结果 方法二:通过sqrtm函数表示根号,在命令行窗口中输入“sqrtm(X)”,按回车键可以看到结果 方法三:在命令行窗口中...
  • C语言中的标准输入和输出函数

    千次阅读 2019-06-12 20:10:16
    输入函数: scanf()、getchar()、gets()、fgets() 输出函数: printf()、putchar()、puts(); 函数详解: putchar()函数和printf()puts()函数比较简单在这里不再赘述; getchar()函数:...
  • 标准输入输出函数

    千次阅读 2012-03-10 20:22:56
     Turbo C2.0 标准库提供了两个控制台格式化输入输出函数printf( ) scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来...
  • C语言——格式化输入和输出函数

    千次阅读 2019-04-01 09:10:19
    格式化输入和输出函数 一、printf、fprintf sprintf函数 函数原型: #include <stdio.h> int printf(const char *format, ...); int sprintf(char *s, const char *format, ...); int fprintf...
  • C语言总结(数据输入输出

    千次阅读 2019-01-20 15:20:26
    C语言总结第四章、数据输入与输出数据输出字符输出函数格式输出函数数据输入字符输入函数格式输入函数 第四章、数据输入与输出 C语言无I/O语句,I/O操作由函数实现 putchar( ) getchar( ) printf( ) scanf( )...
  • 1.python实现:对若干学生一门课成绩进行排序,要求数据输入,排序、输出分别用函数实现 请关注【python的爬虫与数据分析之路】gzh,回复‘作业’获取答案
  • 字符串的输入输出函数总结

    千次阅读 2017-11-02 13:17:58
    字符数据的输入输出 1.putchar 函数(字符输出...2.getchar函数(键盘输入函数)  getchar函数的功能是从键盘上输入一个字符。其一般形式为:getchar();通常把输入的字符赋予一个字符变量,构成赋值语句,如:char
  • matlab pca 函数 输入输出数据的意义

    千次阅读 2015-06-14 23:33:06
    pca虽然看了好多遍,但是到实际应用的时候还是觉得,没那么顺手,主要是输入数据的格式,输出的结果到底是什么东西,搞不清楚。COEF=PCA(X) x是输入数据,解释说,rows of x correspond to observations and ...
  • 源代码如下: #include using namespace std; const int ArraySize = 5; void arraytestinput(int arrayinput[]) { cout ; for (int i = 0; i ; i
  • C语言字符串输入输出函数

    千次阅读 多人点赞 2020-03-21 18:36:15
    C语言字符串输入输出函数 (1)putchar()函数 格式: putchar© 功能:向终端输出一个字符 注意:输出的时候不会加回车 (2) getchar()函数 格式:字符型变量=getchar () 功能:从标准输入设备上读取单个字符,返回值...
  • C语言输入输出函数总结

    千次阅读 2011-04-20 19:18:00
    (一) 格式化输入输出函数 (1)scanf( )格式化输入函数 格式输入函数scanf( )函数,它的格式为scanf(“格式字符串”,输入列表)。“格式字符串”包含三种类型的字符:a、格式字符,以%开头的...
  • C语言的基本输入输出函数

    万次阅读 2018-02-08 15:23:55
    C语言的基本输入输出函数1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入输出函数printf() scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。printf()函数...
  • 使用Matlab建立没有输入和输出函数
  • Java 字符串输入输出函数

    千次阅读 2019-01-22 17:32:13
     编写函数GetRealGetString,在main函数中分别调用这两个函数。在读入一个实数一个字符串后,将读入的结果依次用printf输出。  两次输入前要输出的提示信息分别是"please input a number:\n”"...
  • 【VB】输出数据和输入数据

    千次阅读 2015-10-18 19:55:48
    输出数据和输入数据 1、VB提供了多种输出数据的方法,以下是主要几种: A用对象Print方法输出数据 B用标签Label控件输出文本 C用文本框TextBox控件输出文件 D用MsgBox函数输出数据。 2、Print 方法用于在窗体...
  • 玩儿Arduino也一段时间了,在...1、pinMode(pin,Mode):设置引脚的输入输出状态  Pin:引脚号;  Mode:INPUT、OUTPUT 2、digitalWrite(pin,value) :设置输出引脚的高低电平状态  Pin:引脚号 ;  value:HI...
  • 今天学习C++输入输出流的时候,遇到一个问题,先贴代码: void foutput (ofstream &fout, int m) { for (int i=1;i;i++) { fout *i+0.5; } } 上面这个函数的参数中用了一个ofstream类的变量,在下面...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,056,975
精华内容 422,790
关键字:

常见的数据输出和输入函数