精华内容
下载资源
问答
  • 2、格式化控制字符串用于指定输出格式,它有三种形式:1、格式说明符:规定了相应输出表列内容输出格式,以%打头,如%d、%o等2、转义字符:用来输出转义字符所代表控制代码或者特殊字符,比如常用‘\n'、‘\t'...

    匿名用户

    1级

    2012-10-24 回答

    一:格式输出函数printf()

    1、调用形式一般为:printf("格式化控制字符串",输出表列);

    2、格式化控制字符串用于指定输出格式,它有三种形式:

    1、格式说明符:规定了相应输出表列内容的输出格式,以%打头,如%d、%o等

    2、转义字符:用来输出转义字符所代表的控制代码或者特殊字符,比如常用的‘\n'、‘\t'

    3、普通字符:需要原样输出的字符。

    3、输出表列为若干需要输出的数据项,它与格式说明符在数量和类型上一一对应;

    4、格式字符m指定输出数据所占宽度,n对实数表示输出n位小数,对字符串表示截取的字符个数,+表示右对齐,通常省略。

    —表示左对齐,l用于长整型数据,可加在d、o、x、u前,更多格式说明符及其组合形式如下所示:

    格式字符

    数据对象

    输出形式

    数据输出方法

    %(+)-md

    int

    unsigned int

    short

    unsigned short

    char

    十进制整数

    1、无m按实际位数输出

    2、有m输出m位;超过m位,按实际位数输出,不足补空格

    3、有+(默认为+)右对齐(左补空格)

    4、有-左对齐(右补空格)

    %(+)-mo

    八进制整数

    %(+)-mx

    十六进制整数

    %(+)-mu

    无符号整数

    %(+)-mld

    long

    unsigned long

    十进制整数

    %(+)-mlo

    八进制整数

    %(+)-mlx

    十六进制整数

    %(+)-mlu

    无符号整数

    %(+)-m.nf

    float

    double

    十进制小数

    %(+)-m.ne

    十进制指数

    %(+)-g

    自动选用%f和%e中较短的输出宽度输出单、双精度浮点数

    %(+)-mc

    char

    int

    short

    单个字符

    1、无m输出单个字符

    2、有m输出m位,补空格

    3、有+(默认为+)右对齐(左补空格)

    4、有-左对齐(右补空格)

    %(+)-m.ns

    字符串

    一串字符

    1.无m、n按实际字符串输出全部字符

    2、有m、n仅输出前n个字符,补空格

    3.有+(默认为+)右对齐(左补空格)

    4、有-左对齐(右补空格)

    二:格式输入函数scanf()

    1、 调用格式一般为:scanf("格式化控制字符串",地址表列);

    2、格式化控制字符串和printf()函数含义相似,所不同的是它是对输入格式进行控制;

    3、地址表列是有若干等待输入的数据所对应的内存单元地址组成,由逗号隔开,一般形式为&a,a为变量;

    4、地址表列在数量和类型上和格式化控制字符串中的格式说明符一一对应;

    5、格式字符h表示输入短型数据,可用在d、o、x前面,m指定输入数据所占宽度,

    *表示对应的数据项读入后不赋给相应的变量,更多格式说明符及其组合如下

    格式字符

    数据对象

    输入形式

    数据输入方法

    %md

    int

    short

    unsigned int

    unsigned short

    十进制整数

    1、无m按实际位数输入

    2、有m输入m位,不足m则跟回车键

    %mo

    八进制整数

    %mx

    十六进制整数

    %mld

    long

    unsigned long

    十进制整数

    %mlo

    八进制整数

    %mlx

    十六进制整数

    %mlf

    float

    double

    十进制整数

    %mle

    %mc

    char

    单个字符

    1、无m取单个字符

    2、有m输入m位,仅取第一个字符

    %ms

    字符串

    一串字符

    1、无m取回车或空格前若干字符

    2、有m仅取前m字符

    展开全文
  • 头文件:#include scanf() 函数用来格式化输入数据,即按用户指定的格式从键盘上把数据读入到指定的变量中。其原型为:int scanf ( char * format [ ,argument, ... ]);【参数】format为格式化控制字符串,可以由三...

    头文件:#include

    scanf() 函数用来格式化输入数据,即按用户指定的格式从键盘上把数据读入到指定的变量中。其原型为:

    int scanf ( char * format [ ,argument, ... ]);

    【参数】format为格式化控制字符串,可以由三类字符构成。

    1) 格式化说明符

    ------------------------------------------------------------

    格式字符           说明

    ------------------------------------------------------------

    %a                 读入一个浮点值(仅C99有效)

    %A                 同上

    %c                 读入一个字符

    %d                 读入十进制整数

    %i                  读入十进制,八进制,十六进制整数

    %o                 读入八进制整数

    %x                  读入十六进制整数

    %X                 同上

    %c                 读入一个字符

    %s                 读入一个字符串

    %f                  读入一个浮点数

    %F                 同上

    %e                 同上

    %E                 同上

    %g                 同上

    %G                 同上

    %p                 读入一个指针

    %u                 读入一个无符号十进制整数

    %n                 至此已读入值的等价字符数

    %[]                 扫描字符集合

    %%                读%符号

    另外,还有附加格式说明字符,用于追加在上面的格式说明符后面。

    -----------------------------------------------------------------

    修饰符                       说明

    -----------------------------------------------------------------

    L/l                          长度修饰符,输入"长"数据

    h                            长度修饰符,输入"短"数据

    W                           整型常数,指定输入数据所占宽度

    *                             星号,空读一个数据

    hh                          同 h,但仅对C99有效

    ll                             同 l,但仅对C99有效

    2) 空白字符

    空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。

    3) 非空白字符

    一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

    argument 为需要读入的所有变量的地址。

    注意,是变量地址,而不是变量标识符:

    如果是一般的变量,通常要在变量名前加上"&"取得地址,但输出时是用变量名。

    如果是数组,用数组名就代表了该数组的首地址,输出时也是用数组名

    如果是指针,直接用指针名本身,不要加上“*”,输出时也用该指针即可。

    【返回值】成功则返回被赋值的参数的个数。如果 format 和 argument 匹配错误,或者遇到结束符,那么返回值可能小于参数的个数。

    如果读取发生错误,将会返回 EOF,并设置错误标识,后续可以通过 ferror() 检测。

    如果遇到结束符,将会设置文件结束标识,后续可以通过 feof() 检测。

    如果在读取宽字符的时候发生编码错误,那么将会把 errno 设置为  EILSEQ。

    【实例】下面的代码将演示 scanf() 可以读取的数据类型。#include

    int main ()

    {

    char str [80];

    int i;

    printf ("Enter your family name: ");

    scanf ("%79s",str);

    printf ("Enter your age: ");

    scanf ("%d",&i);

    printf ("Mr. %s , %d years old.\n",str,i);

    printf ("Enter a hexadecimal number: ");

    scanf ("%x",&i);

    printf ("You have entered %#x (%d).\n",i,i);

    return 0;

    }

    运行结果为:

    Enter your family name: Soulie

    Enter your age: 29

    Mr. Soulie , 29 years old.

    Enter a hexadecimal number: ff

    You have entered 0xff (255).

    又如,记录带空格的字符串,然后输出(已经注释的部分为要求输入三个整数,然后逐个打印出来)。

    #include

    int main()

    {

    /*int a,b,c;

    puts("Input a,b,c:");

    scanf("%d,%d,%d",&a,&b,&c);

    printf("\n%d,%d,%d\n",a,b,c);*/

    // 可以输入带空格的字符串*/

    char str[80];

    scanf("%[^\n]",str); // 格式化输入

    printf("%s\n",str); // 格式化输出

    return 0;

    }

    【运行结果】

    sdf ef13

    sdf ef13

    scanf() 函数是初学者接触最多的函数,相信大家都 已非常熟悉,这里不再赘述,但是它还有一个许多人都没有注意 到的功能,即可以记录带空格的字符串,注意学习例子中指定格式的方法。

    展开全文
  • 比如我在C盘file文档里有一个file1文件,我在fopen函数里应该怎么输入文件名呢?
  • C语言的scanf函数以浮点型格式输入到整型变量,会怎么的呢? 当然数据出错啦? 就是酱紫。我输入175.125,输出的却1127358464 离谱吧。为什么呢? 我知道你肯定会说 你沙雕吗?定义的数据int a却用scanf...

    C语言的scanf函数以浮点型格式输入到整型变量,会是怎么的呢?
    当然是数据出错啦?
    在这里插入图片描述
    就是酱紫。我输入175.125,输出的却是1127358464
    离谱吧。为什么呢?
    我知道你肯定会说 你是沙雕吗?定义的数据是int a却用scanf函数float格式化输出,这不错才怪。
    是的,没毛病,但是为什么会是这样的呢?
    底层内存是如何转换导致这样的呢?

    先是百度Google搜查了一波,然后还是很懵,这tm到底是怎么回事?
    先是冲浪了几个小时冷静了一下后,似乎有点头绪。

    int型是使用补码进行存储,而float型则是使用指数形式进行存储。
    重点讲float,一般编译系统分配四个字节,即32位。
    最高位—— 24-31位 —— 0-23位
    符号位—— 阶码 ——尾数
    如20.125
    二进制表示:10100.001 (注意小数点后的二进制计算)
    它储存的二进制是这样的:
    1、首先规格化指数形式:1.0100001x10^4
    2、阶码:4+127=131 =>二进制:10000011
    3、尾数:小数点后全部并用0补齐
    最后得:0 1000 0011 0100 0010 0000 0000 0000 000

    到这,我已经知道它float是这样储存的了,然后就是上面那个程序了。进而进行反推它。
    在这里插入图片描述
    这里我知道它的十进制是1101070336
    所以,我用计算机看看
    在这里插入图片描述
    总结:
    大概就是使用scanf指定%f输入到int的变量的时候,因为我们输出进去的常类也是占内存空间的,所以我们输进去的20.125就转换成“0 1000 0011 0100 0010 0000 0000 0000 000”储存到内存里,然后再把内存单元里的数据分配给int型的a。这时a也是四个字节的int(gcc编译器下),所包含的数据就上上面的二进制数据,读取出来就是:1101070336啦。
    网上寻求无果,个人分析至此,若有误请指出。

    展开全文
  • 今天分享下C语言输入函数scanf函数中 %[] 格式控制符号作用。 C语言输入和输出函数使用格式占位符%作为格式控制,所谓占位符就是在输入输出内容中预留位置填充等待输入输出内容,出现格式占位符%地方表明...

    C语言其实功能很强大,有不少细节的功能很有用。今天分享下C语言输入函数scanf函数中 %[] 格式控制符号的作用。

    C语言输入和输出函数使用格式占位符%作为格式控制,所谓的占位符就是在输入输出的内容中预留位置填充等待输入输出的内容,出现格式占位符%的地方表明有输入和输出。

    常见的格式控制有:

    %d 整数

    %f 单精度浮点数

    %lf 双精度浮点数

    %c 字符

    %p 指针值

    %s 字符串

    %u 无符号整数

    %% 百分号

    当然除了以上常用的,还有今天介绍的 %[]。

    %[] 格式控制类型,本质上也是输入字符串,和%s相比,它可以根据条件扫描输入的字符集合,获得符合条件的子串。

    根据特定的字符集合,从输入的字符序列匹配最长的字符串。从输入中获取匹配[]定义的字符集合的字符形成字符序列。

    对于连接符号 - 处理是实现定义,当-字符出现在[]中间位置时,表示范围,有特殊意义。

    [^] 是相反匹配,从输入中获取不在[]定义的字符集合中的字符。

    备注:和正则表达式相似,可以直接在输入的时候处理字符串,匹配符合条件的子串。

    例如:

    // %[123] 表示只输入1 2 3三个字符集合的字符,其它字符不输入
    
    scanf("%[123]", a);  // 输入:12b2c34d
    
    printf("%s\n", a);   // 输出:12
    
    // %[^123] 表示输入所有字符,除了1 2 3三个字符
    
    scanf("%[^123]", a);  // 输入:a123bdk
    
    printf("%s\n", a);   //  输出:a
    
    // %[1-9] 只输入1到9 九个数字字符,其它字符不输入
    
    scanf("%[1-9]", a);  // 输入:1234567890abc9
    
    printf("%s\n", a);   // 输出:123456789
    

    该功能可以很方便从输入的字符串中,直接提取符合条件的字符组成子串。例如:从输入的字符串中找到所有数字、或找到所有大写字母和小写字母等。这是十分方便的,不需要再调用其它库函数。

    其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C/C++基础交流583650410,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。

    展开全文
  • C语言中一项最重要的函数格式输入输出函数,如常见scanf(),printf()函数。对于初学者而言,容易不能清楚理解什么是输入什么是输出。常常将输入与输出搞混淆。对于c语言入门学者,理解了输入输出后,会因为稍...
  • 关于C语言scanf函数一些需要注意问题 作为新手第一次发帖,不知道该写些什么,就说一下自己在学习C中遇到问题,今天先说一下scanf函数...然后就是scanf具体操作,它和printf函数是有区别,在格式方面...
  • C语句和数据的输入 输出 C语句负责向计算机发出指令,只要语句合乎文法,计算机就会顺利执行。 C语言规定所有语句都要以分号作为结束符 1.函数调用语句 函数调用语句函数调用表达式后加“;”组成, 其一般形式...
  • 格式输入函数

    千次阅读 2018-01-17 11:03:08
    格式输入函数,就像写汉字一样,写出什么样的字体,就会看到什么样的字体。 在C语言中,格式输入使用scanf()函数。该函数的功能指定固定的格式,并且按照指定的格式接收用户在键盘上输入的数据,最后将数据存储在...
  • scanf()函数相信就算刚学C语言的朋友也知道,这一个标准输入函数,它从标准输入流stdin中读内容的。它的第一个参数是格式化字符串,后面跟着的存储内容的地址列表。 如果在全段代码中,只调用一次,且只获取一个...
  • 就是多了个f前缀,这个f当然就是指的file,也就是文件了,后两者操作的对象终端设备,前者则针对磁盘文件的操作,因此fprintf函数和fscanf函数就是了C语言中文件的格式输入输出函数。  学C语言,老师就要...
  • =6174&&num) //这里第二个num是什么意思? { parse_sort(num,each); max_min(each,&max,&min); num=max-min; printf(" [%d]:%d-%d=%d\n",++count,max,min,num); vr6174(num); } } parse_sort(int ...
  • 5261 用法如下:1、printf()函数是格式化输出4102函数,一般用于向标准输出设备按1653规定格式输出信息。2、printf()函数调用格式为:printf("", )。3、格式输出,它是c语言中产生格式化输出函数(在 stdio.h ...
  • 问题来源于书中对整型d%的格式输入是可行的,为什么字符串不行呢? ![图片说明](https://img-ask.csdn.net/upload/201907/12/1562918571_967501.png) 编译器环境: ![图片说明]...
  • C语言格式化输出

    2019-10-29 23:20:46
    printf 是C语言的格式化输出,他的作用用printf函数向指定的设备如(电脑的屏幕等)输出用户指定的格式数据, 如printf("%d"):括号里的%d占位符,什么是占位符?占位符就是现在计算机的内存中占用一个固定的...
  • 引导符,用于引导输入输出项表列的格式c语言中的函数可不可以单独进行编译?可以的。推荐教程:《c语言教程》例如库函数就是把函数放到库里,把一些常用到的函数编译完放到一个文件里,供不同的人进行调...
  • C语言中的输入和输出: 输入: 主要使用scanf函数: ...需求引用的库:stdio.h (这也什么几乎所有C语言程序的开头总是一句"#include ") 格式控制符: 常见的格式控制符 格式控制符 作用 举例
  • 这一类符号“格式说明”用于格式输入与格式输出,就是我们常见的printf和scanf函数中在输入输出时,对不同类型的数据(如int,float,char等)要使用不同的格式说明。其中%d,用来输出十进制整数%f,用来输出实数(包括单...
  • C语言scanf函数详解

    2016-02-06 15:00:00
    scanf()函数是通用终端格式输入函数,它从标准输入设备(键盘) 读取输入信息。能够读入不论什么固有类型数据并自己主动把数值变换成适当机内格式。 其调用格式为: scanf("<格式化字符串>",<地址表...
  • C语言函数重要知识

    2021-02-19 11:45:14
    一、函数是什么 函数定义:子程序,是一个大型程序中某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,具备相对独立性。一般会有输入参数并有返回值,提供对过程封装和细节隐藏。 二、为...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 363
精华内容 145
关键字:

c语言的格式输入函数是什么

c语言 订阅