数据类型输入输出汇总

巩固C++知识时数据类型及输入输出形式汇总:

数据类型 中文名 输入输出形式
char 1个字节 字符型 %c
int 4个字节 整型 %d
short(short int) 2个字节 短整型 %d
long(long int) 8个字节 长整型 %ld
long long(long long int) 8个字节 长整型(C++标准) %lld
float 4个字节 浮点型 %f
double 8个字节 双精度浮点型 % lf

补充

另外,补充如下:

  • %e 表示按指数形式的浮点数的格式输出
  • %g 表示自动选择合适的表示法输出
  • %u 表示输出无符号的unsigned(比如unsigned long long int 的输入输出形式就是%llu);
  • printf("%%");这样才能输出符号%

数据类型简介

  • charchar为一个字节,所以charunsigned的范围是0到255,signed类型的话就是-128到127(-28->27-1);输入输出%c
  • int:在32位系统中(现在普遍是int32位),signed的范围是(-216到215-1),即是-2147483648~+2147483647,unsigned类型 的int 范围:0~4294967295 即( 0到232-1);输入输出%d
  • short intshort int 只有int的一半, 也就是216, 范围为(0到65536-1);输入输出%d
  • longlonglong int 都是4字节, 要注意:long int的大小和系统是32位还是64位的有关系,事实上,long整型与int能储存的长度差不多;输入输出:%ld
  • long long intlong long int有8字节, 表示范围为-263到263-1,也就是10的18次方左右;输入输出%lld
  • floatfloat占用的内存为4个字节, 和int占用的空间是一样的, 只是保存的方式不同, float采用的是指数的方式保存数字, 精确度会有问题,储存长度大概与int相差无几。(稍微比int大);输入输出%f
  • doubledouble占用的8个字节的内存, 所以表示范围会比float更大, double保存数值的方式也是为指数保存, 所以也有精确度的问题,表示的长度大概是10的32次方。输入输出%lf

scanf()和print()函数

scanf()函数一般格式是:scanf(格式控制, 输出表列)
printf()函数的一般格式是:printf(格式控制,输出表列)

用scanf和printf函数进行输入和输出

例子:

#include <iostream>
using namespace std;
int main( )
{
  int a; float b; char c;
  scanf("%d %c %f",&a,&c,&b);  //注意在变量名前要加地址运算符&
  printf("a=%d,b=%f,c=%c\n",a,b,c);
  return 0;
}

输入输出如下:

patten@patten-PC:~/Desktop/cpp$ g++ test.cpp 
patten@patten-PC:~/Desktop/cpp$ ./a.out 
2 g 2.19
a=2,b=2.190000,c=g
patten@patten-PC:~/Desktop/cpp$

相关文章:《C++11变长参数的宏定义以及 “__VA_ARGS__”在Log输出中的应用