C++基础输出printf


今天开一个新坑,之前学习总是半途而废,眼高手低,不是不想写就是不想学…只能说加油、继续、为了部落…

正题开始

先立个flag,争取每周一篇。
之后所有代码为C++

用好printf,搞定输出格式

用法含义
%a(%A)浮点数、十六进制数字和p-(P-)记数法(C99)
%c字符
%d有符号十进制整数
%f浮点数(包括float和double)
%e(%E)浮点数指数输出[e-(E-)记数法]
%g(%G)浮点数不显无意义的零"0"
%i有符号十进制整数(与%d相同)
%u无符号十进制整数
%o八进制整数 e.g. 0123
%x(%X)十六进制整数0f(0F) e.g. 0x1234
%p指针
%s字符串
%n不会打印任何东西。 这个参数必须是一个有符号整数的指针,它存储它出现之前打印的所有字符数。(常用于格式化输出漏洞中,改写内存地址)
%%“%”

还有一些奇技淫巧,参考文件<你可能不知道的printf用法>

练习题

一下联系均来自于https://www.dotcpp.com/

第一个C++程序

屏幕输出一行Hello, World!

#include<iostream>
using namespace std;
int main(){
    printf("%s","Hello, World!\n");
    return 0;
} 

输入输出练习之第二个数字

练习输入输出,这里会输入三个整数,要求只输出第二个数字来!

#include<iostream>
using namespace std;
int main(){
    int a[3];
    for (size_t i = 0; i < 3; i++)
    {
        cin >> a[i];
    }
    printf("%d\n",a[1]);
    return 0;    
} 

输入输出练习之格式控制

依旧是输入三个整数,要求按照占8个字符的宽度,并且靠左对齐输出

#include<iostream>
using namespace std;
int main(){
    int a[3];
    for (size_t i = 0; i < 3; i++)
    {
        cin >> a[i];
    }
    for (size_t i = 0; i < 3; i++)
    {
        printf("%-8d",a[i]);
    }
    printf("\n");
    return 0;
    
} 

输入输出练习之精度控制1

输入一个单精度浮点数,输出保留三位小数输出

#include<iostream>
using namespace std;
int main(){
    float a=0.0;
    cin >> a;
    printf("%.3f\n",a);
    return 0;
} 

输入输出练习之精度控制2

输入一个双精度浮点数,保留12位小数输出

#include<iostream>
using namespace std;
int main(){
    double a=0.0;
    cin >> a;
    printf("%.12f\n",a);
    return 0;
} 

输入输出练习之精度控制3

输入一个字符,一个数字,一个单精度浮点数,一个双精度浮点数,按顺序输出它们四个且数字指定占4个字符宽靠右对齐,单精度浮点数保留2位小数,双精度保留12位小数,占一行输出、空格分隔

#include<iostream>
using namespace std;
int main(){
    char c;
    int i;
    float f;
    double d;
    cin >> c >> i >> f >> d;
    printf("%c %4d %.2f %.12f\n",c,i,f,d);
    return 0;
} 

输入输出练习之浮点数专题

输入一个双精度浮点数,输出这个浮点数的%f结果、保留5位小数的结果、%e、%g格式的结果

#include<iostream>
using namespace std;
int main(){
    double a;
    cin >> a ;
    printf("%f\n",a);
    printf("%.5f\n",a);
    printf("%e\n",a);
    printf("%g\n",a);
    return 0;
} 

输入输出练习之输出图案

输入一个字符,输出由这个字符组成等腰三角形底为5个,高为3个。

#include<iostream>
using namespace std;
int main(){
    char a;
    cin >> a ;
    printf("  %c\n",a);
    printf(" %c%c%c\n",a,a,a);
    printf("%c%c%c%c%c\n",a,a,a,a,a);
    return 0;
} 

字符菱形

给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。

#include<iostream>
using namespace std;
int main(){
    char a;
    cin >> a ;
    printf("  %c\n",a);
    printf(" %c%c%c\n",a,a,a);
    printf("%c%c%c%c%c\n",a,a,a,a,a);
    printf(" %c%c%c\n",a,a,a);
    printf("  %c\n",a);
    return 0;
} 

超级玛丽游戏

超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。

#include<iostream>
using namespace std;
int main(){
    puts("                ********                                                                                       ");
    puts("               ************                                                                                    ");
    puts("               ####....#.                                                                                      ");
    puts("             #..###.....##....                                                                                 ");
    puts("             ###.......######              ###                 ###           ###           ###                 ");
    puts("                ...........               #...#               #...#         #...#         #...#                ");
    puts("               ##*#######                 #.#.#               #.#.#         #.#.#         #.#.#                ");
    puts("            ####*******######             #.#.#               #.#.#         #.#.#         #.#.#                ");
    puts("           ...#***.****.*###....          #...#               #...#         #...#         #...#                ");
    puts("           ....**********##.....           ###                 ###           ###           ###                 ");
    puts("           ....****    *****....                                                                               ");
    puts("             ####        ####                                                                                  ");
    puts("           ######        ######                                                                                ");
    puts("##############################################################              ################################## ");
    puts("#...#......#.##...#......#.##...#......#.##------------------#              #...#......#.##------------------# ");
    puts("###########################################------------------#              ###############------------------#");
    puts("#..#....#....##..#....#....##..#....#....#####################              #..#....#....#####################");
    puts("##########################################    #----------#                  ##############    #----------#    ");
    puts("#.....#......##.....#......##.....#......#    #----------#                  #.....#......#    #----------#   ");
    puts("##########################################    #----------#                  ##############    #----------#    ");
    puts("#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#                  #.#..#....#..#    #----------#    ");
    puts("##########################################    ############                  ##############    ############    ");
    return 0;
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值