C语言基本输入输出

发布于:2022-11-09 ⋅ 阅读:(10) ⋅ 点赞:(0) ⋅ 评论:(0)

C语言基本输入输出

目录

C语言基本输入输出

输出

原样输出

转义字符

打印变量

输出字符

输入

基本输入

字符输入

类型转换

隐式转换

强制类型转换

ASCII码(整数与字符间的转换)

格式控制字符对不上数据

作业


输出

原样输出

#include<stdio.h>       //标准输入输出头文件
int main()
{
    printf("输出内容");         //打印内容到屏幕上
        //多行写法
    printf("这是第一行"
          " "
          "这是第三行");         //本质上还是输出一行
    return 0;
} 

转义字符

  • 调整输出格式

  • 打印特殊字符

  • 表示特殊字符

    printf("\n");   //换行(另起一行回到下一行行首)
    printf("\r")    //回到当前行行首
    printf("姓名\t年龄\t\t学号\n");
    //  1.制表的原理(八位制表超过再加)
        printf("岩崎\t18\t\t1001\n");
        printf("李安\t12345678\t1002\n");
        printf("\t");
    //   2.\ddd字符(8进制转十进制)ASCII码
    printf("\111"); 
    //  3.特殊字符的打印
    printf("\"");   //用转义字符帮助解析
    printf("\\");
    printf("%%"); 

打印变量

  • 格式控制字符:%+特殊字符的具有特殊含义的字符---->占位符

int ->%d
unsigned int ->%u
float ->%f
double ->%lf
char ->%c
char* ->%s
long long int ->%lld
  • 占位符

    printf("整数:%d,小数:%f,字符:%c\n",1,1.1f,'A');
    //小数默认double类型
  • 打印变量

    int iNum=0;
    printf("%d",iNum);
  • 精度控制->小数

    //%+a.bf    右对齐(默认)
    //%-a.bf    左对齐
    //a:输出数据宽度  b:小数位
    printf("%10.4lf",1.33);
  • 人为制表

   
    printf("%10s%10s%10s\n", "姓名", "年龄", "学号");
    printf("%10s%10d%10d\n", "莲娜",18,1002);
    //\t制表左对齐
    printf("%-10s%-10s%-10s\n", "姓名", "年龄", "学号");
    printf("%-10s%-10d%-10d\n", "莲娜", 18, 1002);
    printf("%08d\n", 123);  //补零

输出字符

  • putchar():专门输出一个字符

  • puts():打印字符串且自带换行

输入

基本输入

  • 输入缓冲区:暂时输入的数据 快递公司

  • 地址的概念:存储在计算机的位置

  • 得到一个变量地址(&)

    int iNum=0;
    printf("%p\n",&iNum);   //打印变量的地址
  • scanf类似快递员

输入单个数据

  • 输入前加一个提示

  • scanf需要给返回值避免出现波浪线(vs的scanf_s不需要)

int iNum=0;
printf("请输入:");
int result=scanf("%d", &iNum);
printf("iNum=%d\n", iNum);

输入多个数据

  • 输入多个数据默认空格作为数据间隔(或者输入一个按一次回车)

int iNum=0,number=0;
printf("请输入:");
int result=scanf("%d%d", &iNum,&number);
printf("iNum=%d,number=%d\n", iNum,number);

        输入状态是没有精度控制的

float fNum=0.0f;
printf("请输入:");
int result=scanf("%f", &fNum);
printf("fNum=%.1f\n",fNum);

字符输入

  • getchar()输入

printf("input char:");
char cNum = 0;
//int result = scanf("%c", &cNum);
cNum = getchar();   //专用字符输入函数
putchar(cNum);  //专用字符打印函数
printf("%c", cNum);
  • 在字符和字符串输入前做了输入会存在跳过现象

  • 清空缓冲区

while(getchar()!='\n');     //循环输入直到获取到\n结束
  • scanf_s输入字符类需要增加一个尺寸作为限制

    printf("请输入:");
    scanf_s("%c", &cNum, 1);
    putchar(cNum);
  • 特殊字符输入:不需要回车键确认的输入

    //getch();   //vs使用_getch()
    #include<conio.h>   //_getch()头文件
    char cKey = 0;
    cKey = _getch();
    putchar(cKey);

类型转换

隐式转换

int iNum=1.3333f;
float fNum=3;
printf("iNum=%d\t,fNum=%f",iNum,fNum);

强制类型转换

int number = (int)1.23;
printf("%d\n",num)

ASCII码(整数与字符间的转换)

  • 13->回车键

  • 字母大写与小写之间间距为32

char cNum='A';
printf("cNum=%d",cNum); //cNum=65,按ASCII码转换

格式控制字符对不上数据

  • 输出为垃圾值

  • 无法输入

  • 无意义

作业

填空题

  1. 标识符可由_字母_____数字__下划线__组成,但是首字符不能是数字____

  2. C语言中常用的标识符命名规范是以字母或下划线开头,后面可跟任意是数字、字母或下划线_(大驼峰 小驼峰 匈牙利)

  3. 整数 520 默认的类型是int__

  4. 浮点型 3.14 默认的类型是double__

  5. 类型大小:计算机类型为32位

    • char ___1_字节

    • short _2___字节

    • int __4__字节

    • long int _4___字节

    • long long __8__字节

    • float _4___字节

    • double __8__字节

    • unsigned int 4____字节

编程题

  1. 编程实现输入一个字符,若字符是大写字母则转小写输出,如是小写字母则转大写字母输出,不是字符直接输出。

#include <stdio.h>
int main()
{
    char cNum = 0;
    printf("请输入字符:\n");
    scanf_s("%c", &cNum, 1);
    if (cNum >= 'A' && cNum <= 'Z')
    {
        putchar(cNum + 32);
    }
    else if (cNum >= 'a' && cNum <= 'z')
    {
        putchar(cNum - 32);
    }
    else
    {
        putchar(cNum);
    }
    return 0;
}