C语言输出格式和类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言输出格式和类型相关的知识,希望对你有一定的参考价值。

请问学长们,让程序输出一句话如果定义输出类型?

比如:我想让编译输出为:Hello World! 这句话,如何通过定义printf("%类型")然后显示出来,我尝试了%c %d %s都不行。

printf("Hello world!\n");这个不算喔

一定要是printf("%类型\n")的格式,请问用什么类型??

    C语言里通过printf函数,可以输出任意格式和任意类型。

    printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。
    printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。
    格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
    原型:extern void printf(const char *format,...);
    功能:在c语言中产生格式化输出的函数(定义在 stdio.h 中),其向终端(显示器、控制台等)输出字符。
    用法:
    format
    Format 参数是包含三种对象类型的一个字符串:
    * 无格式字符复制到输出流;
    * 转换规范,每个规范导致在值参数列表中检索 1 个或更多个项;
    * 转义序列。
    通常意义上format的格式如下:
    %[flags][width][.prec][F|N|h|l]type
    规定输出数据的格式,具体如下:[1]
    type
    type的字符用于规定输出数据的类型,含义如下:
    字符    对应数据类型    含义
    d / i    int    接受整数值并将它表示为有符号的十进制整数,i是老式写法
    o    unsigned int    无符号8进制整数(不输出前缀0)
    u
        unsigned int    无符号10进制整数
    x / X
        unsigned int    无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)
    f(lf)
        float(double)    单精度浮点数用f,双精度浮点数用lf(尤其scanf不能混用)
    e / E
        double    科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写
    g / G
        double    使用以上两种中最短的形式,大小写的使用同%e和%E
    c
        char    字符型。可以把输入的数字按照ASCII码相应转换为对应的字符
    s / S
        char * / wchar_t *    字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\\0‘结尾,这个'\\0'即空字符)
    p
        void *    以16进制形式输出指针
    n    int *    到此字符之前为止,一共输出的字符个数,不输出文本
    %
        无输入    
    不进行转换,输出字符‘%’(百分号)本身
    m      无      打印errno值对应的出错内容,(例: printf("%m\\n"); )  
    注:%g、%G在小数点位数四位或指数大于等于精度时用%e、%E,否则用%f。
    flags
    flags 规定输出样式,取值和含义如下:
    字符
        字符名称    说明
    -    减号    左对齐,右边填充空格(默认右对齐)
    +
        加号    在数字前增加符号 + 或 -
    0
        数字零    将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用“-”)
         空格    输出值为正时加上空格,为负时加上负号
    #
        井号    
    type是o、x、X时,增加前缀0、0x、0X
    type是e、E、f、g、G时,一定使用小数点
    type是g、G时,尾部的0保留
    width
    用于控制显示数值的宽度,取值和含义如下:
    n(n=1,2,3...): 宽度至少为n位,不够以空格填充。
    * 格式列表中,下一个参数还是width
    width是一个可选的指定最小值字段宽度的十进制数字字符串。如果转换值字符少于字段宽度,该字段将从左到右按指定的字段宽度填充。如果指定了左边调整选项,字段将在右边填充。如果转换结果宽于字段宽度,将扩展该字段以包含转换后的结果。不会发生截断。然而,小的精度可能导致在右边发生截断。
    prec
    用于控制小数点后面的位数,取值和含义如下:
    无按缺省精度显示0
    当type=d,i,o,u,x时,没有影响;
    type=e,E,f时,不显示小数点
    n(n=1,2,3...)
    当type=e,E,f时表示的最大小数位数;
    type=其他,表示显示的最大宽度
    prec是指可选的精度。精度是一个 .(点)后跟十进制数字字符串。如果没有给出精度,按 0(零)对待。精度指定:
    * d、o、i、 u、x 或 X 转换的最少数字显示位数。
    * e 和 f 转换的基数字符后的最少数字显示位数。
    * g 转换的最大有效数字位数。
    * s 转换中字符串的最大打印字节数目。
    F|N|h|l
    表示指针是否是远指针或整数是否是长整数
    F 远指针
    N 近指针
    h 短整数(short int)
    l 长整数(long int) (此处如果与d搭配为%lld则为long long int(C99),与f搭配为%llf则为long double(C99))
    [Argument]
    包含需要输出的数据,可以是常量(字符常量、数字常量、字符串常量),变量,以及运算式。此处的数据应当与前面的format中的格式控制符一一对应(如果不对应会产生错误)。

参考技术A 大概前面调用字符串文件,然后你定义一个变量用来存放Hello World! 再printf("%s\n",a(就是你定义的那个变量));也许这样可以,,,不过我字符串还不怎么会用。。。。
#include"stdio.h"
#include"string.h"
main()

char a[15];/*好像13就够大了,,,*/
a[15]=Hello World!;/*加上空格什么的,好像还要有一个用于表示结束的,一共就需要13个长度。也许还要把这个字符串用双引号括起来,这个我不是很清楚,还没学,,*/
printf("%s\n",a[15]);

你自己再在书上看一下吧,,我这个大概有很多错误,,,呵呵
参考技术B char strHello[100];

strcpy( strHello, "Hello world!");
printf("%s\n", strHello);本回答被提问者采纳
参考技术C 用string型(字符串型)
要包含#include <string.h>
具体怎么用,看看书吧,书上绝对有!
参考技术D ptinf("%s\n","Hello world");
或者
printf("%s","Hello world\n");
怎么会不行呢?这个在TC下试过了可以的。

以上是关于C语言输出格式和类型的主要内容,如果未能解决你的问题,请参考以下文章

(C语言)unsigned long类型变量输出时,格式转换说明符应如何定义?

C语言中输出long long型数据怎么输出

c语言打印double类型

c语言:输出枚举型变量的值,应该用啥格式说明

关于C语言中double型输出的问题

C语言中double类型怎么使用?