精华内容
下载资源
问答
  • 输出函数 printf(“你要输出的内容”); %d - int %ld - long int %c - char ...%x - 十六进制输出 int 或者long int 或者short int %o - 八进制输出 %s - 字符串 printf(“你要输出的内容对应的占位符”...

    手把手入门C语言—C语言输出函数

    输出函数

    printf(“你要输出的内容”);

    %d - int
    %ld - long int
    %c - char
    %f - float
    %u - 无符号数
    %hd - 短整型
    %lf - double
    %x - 十六进制输出 int 或者long int 或者short int
    %o - 八进制输出
    %s - 字符串

     
    printf(“你要输出的内容对应的占位符”);
     
    在C语言中,默认保留小数点后六位
     
    要想保留对应的位数,就需要在百分号后面加上“.数字”
     
    十进制:12345678
    二进制:101111000110000101001110
             110000101001110
     
    短整型的:12345678 为 24910
    二进制:110000101001110
    短整型截断了前面那一部分(101111000)
     
    不同的类型,要用不同的占位去输出,否则精度丢失。
    在这里插入图片描述

    float f = 3.1415;
    double d = 3.1415926535;
    printf("f=%f\n",f);
    printf("d=%lf\n",d);
    

    输出时f后面多了2个 0,而 d 少了26535这几位数字
     
    因为在C语言中,默认保留小数点后六位
     
    那么如何取消默认保留呢?

    printf("f=%.4f\n",f);
    printf("d=%.10lf\n",d);
    

    如上所示:用 . 加上数字表示保留几位数字
    在这里插入图片描述

    int i = 12345678;
    // 如果用短整型占位符输出int类型的值的话,会产生精度丢失
    printf("i=%hd\n",i);
    

    在这里插入图片描述

    // Java中这样写是没问题的,但是C语言中数组不可以把括号写在前面,下面[]写在前面会报错
    // char[] cArray ={'A','B'};
    
    printf("cArray内存地址=%x\n",&cArray);
    //输出结果  cArray内存地址=60fee6
    
    
    // 加上 # 会默认加上 0x , 加 # 号就可以变为 16进制(把地址值变为 16进制) 
    printf("cArray内存地址=%#x\n",&cArray);
    //输出结果  cArray内存地址=0x60fee6 
    

    在这里插入图片描述

    // 在C语言中没有 String 类型 
    // printf("cArray内容=%s\n",cArray);  //这么写会乱码
    char* text = "I love you!";	//使用指针 
    printf("text内容=%s\n",text);
    

    完整的代码

    #include <stdio.h>
    #include <stdlib.h>
    /**
    
    输出函数
    printf("你要输出的内容");
    
    %d  -  int
    %ld -  long int
    %c  -  char
    %f  -  float
    %u  -  无符号数
    %hd -  短整型
    %lf -  double
    %x  -  十六进制输出 int 或者long int 或者short int
    %o  -  八进制输出
    %s  -  字符串
    
    printf("你要输出的内容对应的占位符");
    
    在C语言中,默认保留小数点后六位
    
    要想保留对应的位数,就需要在百分号后面加上“.数字”
    
    
      十进制:12345678
      二进制:101111000110000101001110
    				   110000101001110
    
      短整型的:12345678 为 24910
      二进制:110000101001110
      短整型截断了前面那一部分(101111000)
    
      不同的类型,要用不同的占位去输出,否则精度丢失。
    */
    main()
    {
    	char c = 'A';
    	int i = 12345678;
    	long l = 123456789;
    	float f = 3.1415;
    	double d = 3.1415926535;
    	printf("c=%c\n",c);
    	printf("i=%d\n",i);
    	printf("l=%ld\n",l);
    	// .4表示保留小数点后 4 位
    	printf("f=%.4f\n",f);
    	// .10表示保留小数点后 10 位
    	printf("d=%.10lf\n",d);
    // 如果用短整型占位符输出int类型的值的话,会产生精度丢失
    printf("i=%hd\n",i);
    
    // Java中这样写是没问题的,但是C语言中数组不可以把括号写在前面,下面[]写在前面会报错
    // char[] cArray ={'A','B'};
    // C语言的数组的括号不能写在左边
    char cArray[]  = {'A','B'};
    // 内存地址用:& 符号 
    printf("cArray内存地址=%x\n",&cArray);
    
    //输出结果
    // cArray内存地址=60fee6
    
    //cArray内存地址=0x60fee6 
    
    // 加上 # 会默认加上 0x , 加 # 号就可以变为 16进制(把地址值变为 16进制) 
    printf("cArray内存地址=%#x\n",&cArray);
    
    // 在C语言中没有 String 类型 
    // printf("cArray内容=%s\n",cArray);  //这么写会乱码
    char* text = "I love you!";	//使用指针 
    printf("text内容=%s\n",text);
    
    system("pause");
    }
    
    展开全文
  • 问题代码如下:(ps:用C-Free编译) #include int main (void ) { char s[]="txt"; short n; printf ("%s\n",s);... scanf ("%d",&n);...如果将上面的short型改为int型便是 ...是因为short不能用整型输入输出吗??
  • c语言输出函数

    千次阅读 2018-02-27 08:10:00
    #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; /** 输出函数 printf("你要输出的内容"); %d - int %ld - long int ...%x – 十六进制输出int 或者long int 或者short int ...
    #include<stdio.h>
    #include<stdlib.h>
    /**
    
    输出函数 
    printf("你要输出的内容");
    
    
    %d  -  int
    %ld - long int
    %c  - char
    %f -  float
    %u – 无符号数
    %hd – 短整型
    %lf –double
    %x – 十六进制输出int 或者long int 或者short int
    %o -  八进制输出
    %s – 字符串
    ?
     printf("你要输出的内容对应的占位符");
     在C语言中,默认保留小数点后六位 
     要想保留对应的位数,就需要在百分号后边加上“.数字” 
    
     十进制:12345678
     二进制:101111000110000101001110 
                      110000101001110
    
     不同的类型,要用不同的占位去输出,否则精度丢失。 
    */ 
    
    main(){
    
           char c = 'A';
           int i = 12345678;
           long l = 123456789;
           float f = 3.1415;
           double d = 3.1415926535;
           printf("c==%c\n",c); 
           printf("i==%d\n",i); //101111000110000101001110
           printf("l==%ld\n",l); 
           printf("f==%.4f\n",f); 
           printf("d==%.10lf\n",d); 
           printf("i==%hd\n",i); // 110000101001110
           //C语言的数组的括号不能写在变量左边 
           char cArray[]   = {'A','B'};
           printf("cArray的内存地址:%#x\n",&cArray);
           char* text = "I love you!";
    
           printf("text内容==%s\n",text);  
           system("pause");
    }
    展开全文
  • 今天复习C语言,发现short变量长度有点问题,希望大神来看看。第一段代码:#include int main() { unsigned short a=65534; printf("%o\n",a); return 0; } 运行结果为:177776 证明short占了16位,就是两个...
  • C语言输出数据流

    2020-05-12 19:06:37
    void fun(unsigned short vendor_id, unsigned short product_id,) { FILE* fp; fp=fopen("e:/outputtext.txt","w+"); fprintf(fp,"vendor_id:%hx,product_id:%hx",vendor_id,product_id); fcl...

    #include <stdio.h>
    #include <stdlib.h>

    void fun(unsigned short vendor_id, unsigned short product_id,)
    {
        
         FILE* fp;
         fp=fopen("e:/outputtext.txt","w+");

         fprintf(fp,"vendor_id:%hx,product_id:%hx",vendor_id,product_id);
         fclose(fp);

    #if 0

        std::ofstream outfile("");
        if (outfile.is_open())
        {
        outfile<<"vendor_id:"<<vendor_id<<";"<<"product_id:"<<product_id;
        }
        outfile.flush();
        outfile.close();

    #endif
    }

    展开全文
  • c语言中数据截断的坑 1.数据截断的定义 当目标数据类型的内部存储空间较短时,自动将源数据类型的低位部分作为目标数据类型值的转换过程被称之为截断。 例如 char ch=65; printf("%c\n",ch); 输出结果 A 在这个...

    c语言中数据截断的坑

    1.数据截断的定义

    当目标数据类型的内部存储空间较短时,自动将源数据类型的低位部分作为目标数据类型值的转换过程被称之为截断

    例如

    char ch=65;
    printf("%c\n",ch);
    
    输出结果
    A
    

    在这个代码块中我们都知道65是A的相对应的ASCII值,然后当以字符输出时是将整型转化为字符型,在计算机内存中整型与字符型所占的内存大小就不同,因此就会在转换过程中发生截断

    2.数据在内存中的存储

    在计算机机器语言中-,一切语言都是以二进制的形式存储,而内存中存储的最小单位是bit位。整数在机内以补码存放。正整数的补码就是它的原码,负整数的补码为反码加1的结果。一般第一位是符号位1表示负号0表示正号。例如:-5

    • 原码为:10000000 00000101
    • 反码为:11111111 11111010
    • 补码为:11111111 11111011

    3.实际案例

    • 案例1

    char ch=90; [00000000 01011010]
    ---------------- [--------------01011010]

    • [ 整数转换成字符的转换过程] ,小伙伴发现没,最后8位正着写,反着写都是一样的,记住得是反着写!!!!

    低位部分作为目标数据类型值的转换

    • 案例2
    short i=-4;
    printf("ASCII=%c\n",i);
    

    输出结果为:ASCII=?
    分析: short ,两个字节,16bit位,char,1字节,8bit位。故在此代码中-4的内部存储值为:

    原码 10000000 00000100
    反码 11111111 11111011
    补码 11111111 11111100

    特别注意这时取低位常犯的坑,并不是直接取后8位,而是从最后一位往前数8位,及并不是取111111100,而是00111111,前一种不对,后一种的ASCII码值算出来就刚好是63,对应的字符就是?当时我想的就是第一种,结果
    在这里插入图片描述

    4.扩展

    这儿就简单描述一下扩展,它与截断刚好相反,是目标的存储空间比原类型长,而扩展分为符号扩展零扩展。符号扩展是对有符号数用原来的符号位进行扩展,零扩展是对无符号数扩展其高位全部为0.

    char cA=97,cB=132;
    unsigned char arr=97,abb=132;
    int i,j,r,b;
    i=cA;//最高位为零的符号扩展
    j=cB;//最高位为1的符号扩展
    r=arr;//最高位为零的无符号扩展
    b=abb;//最高位为1的无符号扩展
    printf("%d %d %d %d",i,j,r,b);
    

    输出结果:97 -124 97 132

    5.总结

    数据截断与数据扩展是c语言中的基础知识,有些坑需要注意

    展开全文
  • C语言short int输入输出问题

    千次阅读 2008-10-20 09:27:00
    假如你要分别输入12 34 你没法输 号或者是数学运算缺少库文件支持呢~|||short 是短整型 a[1001][1001]太大了 比如m比较大的话一直要循环着输入;你可以调试程序;比如加入语句printf(“n=%d 你要不把程序贴出来 我...
  • #include<stdio.h> main() { shorti; short*p; printf("请输入一个数值\n"); scanf("%d",&i); p=&i;/*将变量i的地址赋给指针变量*/ ...
  • 此函数一般形式为: ...——int, short %x (十六进制) %o (八进制) %u (无符号十进制) ——unsigned int(int可以省略) 可以扩展为如下数据类型: %Ld (长十进制) ——long int(int可以省
  • unsigned short a,z; printf("please input an octal number:\n"); scanf("%o", &a); /*输入一个八进制数*/ z=a & 0100000; /*0100000的二进制形式为最高位为1,其余为0*/ if(z==0100000) /*如果a...
  • C语言整数的输出

    2020-04-17 12:21:53
    整数是我们生活中常用的数据类型,也是编程中常用的一种数据,C语言用int关键字来定义整数变量(int是 integer 的简写)。 在定义变量的时候,可以加signed、unsigned、short和long四种修饰符。 signed:有符号的,...
  • 输出以下关键字的字节大小及输出一个地址: 1. #include int main() { printf("%d\n",sizeof(char));//1 printf("%d\n", sizeof(short));//2 printf("%d\n", sizeof(int));//4 printf("%d\n", sizeof(float));//...
  • C语言格式化输出

    2019-11-21 18:13:21
    但是win32/win64不支持,在win32/win64上,支持的最短整型是short z i,d,o,u,x 输出 size_t 类型的整数(C99),但win32/win64不支持,在win32/win64上,用 %Iu j i,d,o,u,x 输出 intmax_t, uintmax_t(C99),但win...
  • 输出以下关键字的字节大小及输出一个地址: 1. #include<stdio.h> intmain() { printf("%d\n",sizeof(char));//1 printf("%d\n",sizeof(short));//2 printf("%d\n",sizeof(int));//4 printf("%d\n",sizeof...
  • C语言的基础输入输出

    2019-01-04 14:35:00
    C语言的基础输入输出 首先来整理一下各个数据类型的输入输出格式: 1.char %c 2.int/short int %d 3.long int %ld 4.long long int %lld 5.float %f 6.fouble %lf 然后,要如何保留位数...
  • C语言格式化输出

    2020-05-27 19:06:28
         short: 对于short类型, 使用h来表示. %hd(十进制形式), %ho(八进制形式). h和l前缀也可以和u一起使用, 用于表示无符号类型.      short int:      unsigned long: %lu.      long long: %lld ...
  • C语言编程输出不同整型数据类型在内存中占的字节数 使用sizeof(),sizeof()是保留字,它的作用是求某类型或某变量类型的字节数 代码如下: #include <stdio.h> int main() { int a = sizeof(short); int ...
  • 输出函数 /* %d - int %ld – long int %c - char %f - float ...%x – 十六进制输出 int 或者long int 或者short int %o - 八进制输出 %s – 字符串 */ #include &lt;stdio.h&gt; main() { ...
  • C语言基本数据类型输入输出格式

    千次阅读 2020-10-06 17:23:01
    后3个关键字(long、short和unsigned)和C90新增的signed用于提供基本整数类型的变式,例如unsigned short int和long long int。char关键字用于指定字母和其他字符(如,#、$、%和*)。另外,char类型也可以表示较小...
  • 一、汇总前面学过的格式控制符 格式控制符 说明 %c 输出一个单一的字符 %hd、%d、%ld 以十进制、有符号的形式输出 short、int、... 以八进制、不带前缀、无符号的形式输出 short、int、long 类型...
  • _后端开发c语言中的关键字有32个,分别为auto、int、double、long、char、float、short、signed、unsigned、struct、union、enum、static、switch、case、default等。 C语言中常用的小数有两种类型,分别是 float 或...
  • C语言笔记---输入输出

    2017-09-07 15:12:47
    C语言笔记—输入输出 输入输出整数 // 通过控制台为short类型变量赋值 short shortInteger; scanf("%d", &shortInteger);// 通过控制台为int类型变量赋值 int integer; scanf("%d", &integer);// 通过控制台为long...
  • c语言中的输入输出

    2007-04-17 16:02:03
    c语言中的输入输出  在c中输入输出是最基础的操作,但是,如果不加注意,也很容易犯错误。  本人由于一时疏忽,竟然在输入输出上耗费一个小时,请看下面一段代码: #include&lt;stdio.h&gt;main(){ ...
  • 输入与输出问题–c语言笔记 一.字符的输入与输出 1.Putchar (1)原型:int putchar(int c) 第一个int:表示函数的返回值,也就是说,函数如果正确执行,则返回输出字符的字符码;否则,则输出EOF。 第二个int:表示...
  • 输出函数有以下几种: %d - int %ld – long int %c - char %f - float %lf – double ...%x – 十六进制输出 int 或者long int 或者short int 'X'大写代表以十六进制大写输出 %o - 八进制...
  • C语言中的正负数及其输出

    千次阅读 2020-02-19 14:52:41
    C语言中也是一样,short、int、long 都可以带上正负号,示例 //负数 short a1 = -10; short a2 = -0x2dc9; //十六进制 //正数 int b1 = +10; int b2 = +0174; //八进制 int b3 = 22910; //负数和正数相加 long c =...
  • C语言中也是如此,但是鉴于数字在计算机中的存储方式,就需要一个bit位来存储符号位,如: //正数 short a1 = -10; short a2 = -0x2dc9; //十六进制前缀0x //负数 int b1 = 10; int b2 = +0174; //八进制前缀0 以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 397
精华内容 158
关键字:

c语言输出short

c语言 订阅