精华内容
下载资源
问答
  • 比较简单的C语言词法分析器程序,可以打开并识别C语言格式的*.txt文件。比较简单的C语言词法分析器程序,可以打开并识别C语言格式的*.txt文件。
  • C语言格式字符大全

    2012-11-26 18:31:36
    C语言格式字符大全
  • C语言格式书写规范

    2013-11-27 17:01:40
    C语言格式书写规范指南,有助于直观的看懂程序功能等信息。
  • C语言格式化输出

    千次阅读 2019-01-22 11:26:49
    C语言格式化输出 文章目录C语言格式化输出1. 基本格式化输出符号1.1 %g详解2. printf函数解析2.1 type 含义如下:2.1.1 %n 详解2.2 flags 规定输出格式,取值和含义如下:2.3 width2.4 prec 用于控制小数点后面的...

    C语言格式化输出

    1. 基本格式化输出符号

    符号 含义
    %c 字符
    %d 十进制整数
    %e 浮点数,指数e的形式
    %s 字符串
    %E 浮点数,指数E的形式
    %u 无符号十进制整数
    %f 浮点数,小数点形式
    %g 输出%f与%e较短者
    %o 无符号八进制整数
    %G 输出%F与%E较短者
    %x 无符号十六进制整数,以0~f表示
    %X 无符号十六进制整数,以0~F表示
    %l 长整型,加在d,o,u,x,X之前,如%ld(注意%l是英文字母l,不是数字1)

    1.1 %g详解

    当一个数字的绝对值很小的时候,要表示这个数字所需要的字符数目就会多到让人难以接受。举例而言,如果我们把 π*10^-10 写作 0.00000000000314159 就会显得非常丑陋不雅,反之,如果我们写作 3.14159e-10,就不但简洁而且易读好懂。

    当指数是 -4 时,这两种表现形式大小相同。对于比较小的数值,除非该数的指数小于或者等于-5,%g 才会采用科学技术发来表示,即,以 %e 的格式进行输出。

    示例程序:

    printf("%g\n", 0.00031415926235);
    0.000314159
    printf("%g\n", 0.000000031415926235);
    3.14159e-008
    

    2. printf函数解析

    函数原型:

    int printf(const char *format,[argument]);

    format 参数输出的格式,定义格式为:

    %[flags][width][.perc] [F|N|h|l]type

    2.1 type 含义如下:

    符号 含义
    d 有符号10进制整数
    i 有符号10进制整数
    o 有符号8进制整数
    u 无符号10进制整数
    x 无符号的16进制数字,并以小写abcdef表示
    X 无符号的16进制数字,并以大写ABCDEF表示
    F /f 浮点数
    E /e 用科学表示格式的浮点数
    g 如果数据长度较小,用 %f 表示,如果较大,用 %e 表示
    c 单个字符
    s 字符串
    % 显示百分号本身
    p 显示一个指针,near指针表示为:XXXX ;far 指针表示为:XXXX:YYYY
    n 相连参量应是一个指针,其中存放已写字符的个数

    2.1.1 %n 详解

    #include "stdio.h"
    int main(int argc,char *argv[])
    {
        char a[20];
        int x,t;
        double y;
        scanf("%s%n",a,&t);//把接收的字符个数赋给t
        printf("%s-->You have just entered %d character(s).\n",a,t);
        scanf("%d%n",&x,&t);//把接收整型数的字符个数赋给t
        printf("%d-->You have just entered %d character(s).\n",x,t);
        scanf("%lf%n",&y,&t);//把接收浮点数的字符个数赋给t
        printf("%g-->You have just entered %d character(s).\n",y,t);
        return 0;
    }
    
    lh@ubuntu:~/libingxuan$ ./a.out
        1234   //这里是4个空格接着1234\n,scanf会统计先导的空白符号,但是不会写入文件,所以这里是8个
    1234-->You have just entered 8 character(s).
    123       //此时缓冲区的状态是\n1234\n
    123-->You have just entered 4 character(s).
    1.314
    1.314-->You have just entered 6 character(s).
    

    在printf中的用法与上述类似

    #include <stdio.h>
    
    int main()
    {
        int x;printf("\n\n\n\n12345%n\n",&x);
        printf("%d\n",x);
    }
    
    lh@ubuntu:~/libingxuan$ ./a.out 
    
    
    
    
    12345
    9
    lh@ubuntu:~/libingxuan$ ^C
    

    2.2 flags 规定输出格式,取值和含义如下:

    符号 含义
    右对齐,左边填充空格
    - 左对齐,右边填充空格
    + 在数字前增加符号 + 或 -
    # 主要针对8进制、16进制的输出,type=o,x,X时,分别在数值前增加’0’,“0x”,“0X”
    0n(n=1,2,3…) 宽度至少为 n 位,不够左边以 0 填充 * 格式列表中

    2.3 width

    width 表示宽度,宽度不够的会以空格填充 ,超出限定长处的部分不会显示

    2.4 prec 用于控制小数点后面的位数,取值和含义如下:

    符号 含义
    按缺省精度显示
    0 不显示小数点
    n(n=1,2,3…) 表示要保留小数位数

    2.5 [F|N|h|l] 表示指针是否是远指针或整数是否是长整数

    F 远指针
    n 近指针
    h短整数或单精度浮点数
    l 长整数或双精度浮点数

    2.5.1 近指针、远指针解释

    近指针、远指针、巨指针是段寻址的 16 bit 处理器的产物(如果处理器是 16 位 的,但是不采用段寻址的话,也不存在近指针、远指针、巨指针的概念),当前普通PC所使用的 32 bit 处理器(80386以上)一般运行在保护模式下的,指针都是 32 位 的,可平滑地址,已经不分远、近指针了。

    展开全文
  • C语言格式如下: #include //standart in out 缩写,标准输入输出, .h:header,头文件。因为我们引入了printf,所以要引用这个预编译处理器, void main() //main函数是整个运行程序的起点,main函数可以返回一

    C语言格式如下:

    #include <stdio.h>                           //standart in out 缩写,标准输入输出, .h:header,头文件。因为我们引入了printf,所以要引用这个预编译处理器,

    void main()                                        //main函数是整个运行程序的起点,main函数可以返回一个值,也可以不返回值

    {

    printf("Hello World!");

    }

    编译和执行过程:

    1.编译

    形成目标代码/文件。目标代码是编译器的输出结果,常见扩展名为“.o”或“.obj”。

    2.连接

    • 将目标代码跟c函数库相连接,并将源程序所用的库代码与目标代码合并。(例如:上面根据printf去stdio.h头文件中去查找)
    • 形成最终可执行的二进制机器代码(可执行程序)

    3.执行

    在特定的机器环境下运行c应用程序,例如windows,linux

    在此介绍c语言的一个特殊命令,就是如何获得用户输入值,如下所示:

    int a;
    printf("请输入数值\n");
    //&是获取变量地址,通过这种方式就把输入值赋值给变量a了。
    scanf(“%d”,&a);

    同时关于long类型,c语言中占用4个字节,long long才是占用8字节,这点跟java不一样。在c语言中0代表假,1代表真。(可以通过sizeof(int)或sizeof(6)获取数据字节长度)

    c语言中的随机数:
    srand(time(null));
    rand();//注意,在rand前要加上srand,否则相同的程序产生的随机每次执行是固定不变的,在执行这条语句的时候要引入:#include <time.h>

    c语言中的数组:
    c语言中的数组是占用一块连续空间内存的结构,数组名就是这块连续内存空间的首地址(即数组的第一个元素的地址),数组声明方式如下:
    int nums[25];二位数组就是int num[10][25];

    c语言中的常量定义:
    #define N 50;//#define是宏定义,定义一个常量,常量还有一种定义方式:const int SIZE = 50;两者的区别是#define是宏定义,定义的时候没有确定常量类型,const定义的时候确定了常量类型,一般定义常量采用 const

    c语言中的指针:

    指针(pointer)简介:
    指针是一个值为内存地址的变量(或数据对象)。内存地址一般使用16进制表示,例如:0028FF44;示例如下:
    int year = 2016;//year的地址是:0028FF44;
    int * ptr_year = &year;地处就是将year的地址赋值给了ptr_year;可以将int * 理解为一种数据类型。指针基本用法示例如下(相同类型用相应类型的指针):
    int * ptr_num;
    char * ptr_name;
    float * money_ptr;
    double * p_price;
    int * num = NULL;表示指针不指向任何地址。

    获取指针的示例代码如下:
    sprintf("指针地址是:%p",&num);%p是指针类型的占位符。

    *ptr_num=1111;可以把指针对应空间的值修改掉。
    一般指针不再使用的时候要将指针置为NULL:ptr_num=NULL;以免后续对别的数据产生影响。


    数组与指针:

    double sore[] = {1,2,3};
    double * ptr_score = score;
    int i;
    for(i=0;i<3;i++){
    printf(“数组值为:%.2lf”,*(ptr_score + i));//通过指针+i可以直接获取到下一个元素的地址;
    }

    有上面可以看出score就是数组的首元素地址,如果score+1就是第二个元素的地址(+1跨越的指针距离是与数组的类型的sizeof相等的)
    二维数组的话,例如score就是score的首元素地址&score[0][0],使用指针访问二位数组可以用如下方式:*(a[1]+2)或者*(*(a+1)+2)


    c语言中的函数(function):

    规则:
    内置函数:由c语言系统提供;需要在程序前包含定义函数的头文件
    自定义函数:带参;不带参

    常用的内置函数如下:


    上面是内置函数举例,不是常用,重点介绍一个函数:malloc(n);//n是动态分配的字节数,示例如下:
    int * nums;
    nums = (int *)malloc(20);这样动态分配了一个20个字节的内存,相当于含有5个元素的int数组,用malloc比直接声明数组的优点是,有free(nums)函数,可以直接释放掉分配的内存。
    还有一个与malloc等价的函数nums = calloc(5,sizeof(int));也可以直接free(nums)释放内存。calloc与malloc的区别是,malloc没有为数组元素赋初始值,calloc为每个元素赋初始值。
    还有relloc是重新分配内存。









    展开全文
  • C语言格式化读取文件

    2019-11-07 13:19:17
    C语言格式化读取文件 数据格式: AA 28 00 10 00 80 80 02 08 08 0A CC 33 C3 3C 变成下面的形式 num={0xaa,0x28,0x00,0x10,0x00,0x80,0x80,0x02,0x08,0x08,0x0a,0xcc,0x33,0xc3,0x3c}; #define _CRT_SECURE_NO_...

    C语言格式化读取文件

    数据格式:
    AA 28 00 10 00 80 80 02 08 08 0A CC 33 C3 3C
    变成下面的形式
    num={0xaa,0x28,0x00,0x10,0x00,0x80,0x80,0x02,0x08,0x08,0x0a,0xcc,0x33,0xc3,0x3c};

    #define _CRT_SECURE_NO_DEPRECATE //兼容C的标准格式
    #include <stdio.h>
    #include <stdlib.h>
    #include <errno.h>
    #include <string.h>
    
    #define LENGTH 15 //数组的大小
    
    typedef struct
    {
    	char number[LENGTH];
    	char staddress[LENGTH];
    	int price;
    }*node, Node;
    
    int main(int argc, char *argv[])
    {
    	FILE *fp;
    	fp = fopen("test.txt", "a+"); //以读写的权限打开文件(如果文件不存在则创建)
    	int num[LENGTH];
    	for (int i = 0; i < LENGTH; i++)
    	{
    		fscanf(fp, "%02x ", &num[i]);
    	}
    
    	fprintf(fp, "\rnum={");//格式化从文件中读出数据
    	for (int i = 0; i < LENGTH-1; i++)
    	{
    		fprintf(fp, "0x%02x,", num[i]);//格式化从文件中读出数据
    	}
    	fprintf(fp, "0x%02x", num[LENGTH-1]);//格式化从文件中读出数据
    	fprintf(fp, "};");//格式化从文件中读出数据
    	fclose(fp); //关闭文件
    	return 0;
    
    }
    
    展开全文
  • C语言格式化输入输出

    千次阅读 2017-12-27 14:37:29
    C语言格式化输入输出 原创 2015年03月20日 20:08:32 标签: 537 编辑 删除 printf: 格式字符串的一般形式:[标志][输出最小宽度][. 精度][长度] 类型 (其中方括号[] 中的项为可选项。...

    C语言格式化输入输出

    原创 2015年03月20日 20:08:32
    printf:
    格式字符串的一般形式:[标志][输出最小宽度][. 精度][长度] 类型   
    其中方括号[] 中的项为可选项。)


    各项意义:
    1) 类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:

             格式字符        意义
                   d 以十进制形式输出带符号整数(正数不输出符号)
                   o 以八进制形式输出无符号整数(不输出前缀 0)
                 x,X 以十六进制形式输出无符号整数(不输出前缀 Ox)
                   u 以十进制形式输出无符号整数
                   f 以小数形式输出单、双精度实数
                 e,E 以指数形式输出单、双精度实数
                 g,G 以%f 或%e 中较短的输出宽度输出单、双精度实数
                  c 输出单个字符
                  s 输出字符串

    2) 标志:标志字符为-、 +、 #、空格四种,其意义下表所示:

              标        志       意义
                   - 结果左对齐,右边填空格
                   + 输出符号(正号或负号)
                空格 输出值为正时冠以空格,为负时冠以负号
                  #

    对 c,s,d,u 类无影响;对 o 类, 在输出时加前缀 o;对 x 类, 在输出时加前缀 0x;

    对 e,g,f 类当结果有小数时才给出小数点

    3) 输出最小宽度: 用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或 0。
    4) 精度: 精度格式符以“. ”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。

    5) 长度: 长度格式符为 h,l 两种, h 表示按短整型量输出, l 表示按长整型量输出。




    scanf:

    格式字符串的一般形式:%[*][输入数据宽度][长度] 类型  (其中有方括号[] 的项为任选项。)


    各项意义:
    1) 类型:表示输入数据的类型,其格式符和意义如下表所示。

            格式字符 意义
                  d 输入十进制整数
                  o 输入八进制整数
                  x 输入十六进制整数
                  u 输入无符号十进制整数
                 f,e 输入实型数(用小数形式或指数形式)
                  c 输入单个字符
                  s 输入字符串

    2) “ *”符: 用以表示该输入项读入后不赋予相应的变量,即跳过该输入值。
    例:scanf("%d %*d %d",&a,&b);
    输入: 1 2 3,    则a=1,2被跳过,b=3。

    3) 宽度: 用十进制整数指定输入的宽度(即字符数) 。
    例1:scanf("%5d",&a);
    输入: 12345678  则a=12345,其余部分被截去。
    例2:scanf("%4d%4d",&a,&b);
    输入: 12345678  则a=1234,b=5678。

    4) 长度: 长度格式符为 l 和 h, l 表示输入长整型数据(如%ld) 和双精度浮点数(如%lf) 。 h 表示输入短整型
    数据。


    另外在使用 scanf 时还必须注意以下几点:
    1. scanf 函数中没有精度控制,如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数部分为2位的实数。
    2. 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格, TAB或回车作间隔。 C 编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时, A 即为非法数据)时即认为该数据结束。
    3. 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。
    例:scanf("%c%c%c",&a,&b,&c);
    输入:d e f    则a='d', b=' ', c='e'。
    输入:def       则a='d', b='e', c='f'。
    如果在格式控制中加入空格作为间隔,
    如:scanf ("%c %c %c",&a,&b,&c);则输入时各数据之间可加空格。

    4. 如果格式控制串中有非格式字符则输入时也要输入该非格式字符。
    例1:scanf("%d,%d,%d",&a,&b,&c);  (其中用非格式符“ , ”作间隔符)

    输入应为:5,6,7
    例2:scanf("a=%d,b=%d,c=%d",&a,&b,&c);
    输入应为:a=5,b=6,c=7
    5. 如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。



    double型输入输出形式如下:

            double a;

            scanf("%lf",&a);

            printf("%f",a);

    注:在输入double类型时需要使用%lf才能正常得到a值,而在输出double类型时可以使用%f,因为在执行printf("%f",a)时编译器将自动把float类型的参数转化为double类型

    展开全文
  • *号在C语言格式化字符串中的作用 云中漫步 » *号在C语言格式化字符串中的作用*号在C语言格式化字符串中的作用 发布于: 2011 一月 25 作者: Simon_fu 目录: C/C++, 技术 评论: 3 条评论 只要熟悉C语言的....
  • C语言格式字符的输出指令

    千次阅读 2018-08-22 21:29:29
    C语言格式字符输出格式有d,o,x,u,c,s,f,e,g等。 如 %d整型输出,%ld长整型输出, %o以八进制数形式输出整数, %x以十六进制数形式输出整数,或输出字符串的地址。 %u以十进制数输出unsigned型数据(无符号数)。...
  • 刚学完Java输出没多久,因为大一学过C语言,所以对比了一下,还是发现了很多的不同 学过C语言的小伙伴们应该知道,一个printf语句如何...找到了一位大佬解释的C语言格式化输出,讲的很详细感兴趣的可以看看 https://
  • 【C】C语言格式输入函数scanf()详解

    万次阅读 多人点赞 2018-05-12 21:37:28
    参考了:C语言格式输入函数scanf()详解 总述 scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 scanf函数的一般形式 scanf函数是一个标准库函数,它的函数原型在头文件...
  • c语言格式化输出控制长度

    千次阅读 2016-07-20 11:22:31
    c语言格式化输出控制长度今天在实现ls命令的时候,输出的文件名是上下对齐:1 2 a.c b crawler text 公共的 视频 文档 音乐 1.c 2.c a.out b.c git win 模板 图片 下载 桌面便想着实现对齐,想到了c的格式化输出:printf...
  • 局分c语言格式化标示符和java格式化标示符:在java中,浮点型float和double型的格式化标示符都为%f;而c语言中,浮点型的格式化标示符float型的为%f,double型的为%lf(或%Lf); 如下: package javaD
  • C语言格式

    2019-02-26 10:30:56
  • C语言格式输出-------浮点型

    千次阅读 2019-11-15 21:01:17
    c语言格式输出之浮点型: c语言浮点型包含两种类型:单精度(float)、双精度(double) 二者的区别: 1)二者所占的内存大小不同。 float占用4个字节,double占用8个字节。 // VS2019 #include<stdio.h> ...
  • C语言格式字符 print

    千次阅读 2009-11-05 11:42:00
    C语言格式字符2008-10-22 17:13在Turbo C中格式字符串的一般形式为: [标志][输出最小宽度][.精度][长度]类型其中方括号[]中的项为可选项。各项的意义介绍如下:1.类型类型字符用以表示输出数据的类型,其格式符和...
  • c语言格式输出

    2014-11-15 00:43:45
    c语言中输出时保留2位数字则是printf("%.2f",
  • C语言格式控制符

    千次阅读 2016-10-16 17:07:33
    格式控制符直接影响着程序输出的外观,所以在C语言学习着占据着举足轻重的作用,基本上我们每天的编程都会与它打交道。所以这部分内容值得细细体会、多上机实践。养成善于总结、记笔记的习惯,相信学好它们不在话下...
  • 自己动手写C语言格式化输出函数(三)

    万次阅读 多人点赞 2011-12-24 10:00:24
    上接《自己动手写C语言格式化输出函数(二)》、《自己动手写C语言格式化输出函数(一)》。 八、格式化浮点数(有关浮点数的数据定义和底层的数据转换函数见《自己动手写C语言浮点数转换字符串函数》一文)。// ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,115
精华内容 12,046
关键字:

c语言格式

c语言 订阅