蓝桥杯基础入门——编程框架与输入处理

蓝桥杯基础入门——编程框架与输入处理

作为一只有鱼的记忆的菜鸟本菜,只能用文字记录下一步一脚印的学习过程,希望在自己忘记的时候能够比较快地回忆起来,同时能给其他刚入门的小菜菜们提供一点点帮助。
今天是寒假练习第一天,一起学习的小伙伴遍布大一到大三,基础内容便从框架以及输出输出开始总结吧。(菜菜菜起来每次都花大半天思考怎么输入数据,嘤嘤嘤~)

  1. 基础框架
#include 
#include
#include
#include
#include
using namespace std;

int main()
{
   
    return 0;
}

目前而言,菜菜觉得这五个基本的头文件就够解决绝大多数问题啦。后面学习新的函数使用到其他库再进行增添说明。
2. 整数输入
1)输入到零结束

while(scanf("%d", &n), n != 0) {   }while(cin >> n, n != 0) {     }

2)多组输入(不确定输入个数,输入到文件尾结束)
多组单个

while(scanf("%d", &n) != EOF) {    }while(cin >> n) {   }

多组多个

while(scanf("%d%d", &n, &m) != EOF) {   }while(cin >> n >> m) {   }

3)T组数据输入

scanf("%d", &T); while(T--) {}
或 cin >> T; while(T--) {}

4)多组整数矩阵输入

const int Size = x;
while(scanf("%d", &num[0][0]) != EOF) {
    for(int i = 0; i < Size; ++i) {
        for(int j = 0; j < Size; ++j) {
            if(i == 0 && j == 0) {
                continue;
            }
            scanf("%d", &num[i][j]);
        }
    }
}
  1. 字符输入
    1)多组输入
    多组单个
char ch[2];//用字符串存单个字符输入不容易出错
while(scanf("%s", ch) != EOF) {     }

多组多个

while(scanf("%s%s", n, m) != EOF) {   }while(cin >> n >> m) {   }

2)字符串多组输入且每组长度不同

char s[1000000+10];
while( scanf("%s",s)!=EOF){
   len=strlen(s);%用strlen可以获取每组字符串实际长度
}

3)字符串多组矩阵输入

char a[10][10];
while(scanf("%s",a[0])!=EOF){
   for(int i=1;i<10;i++){
   scanf("%s",a[i]);
   }
}

4)多组字符输入,每组字符个数不确定,字符间空格隔开

string str;
while(getline(cin,str)){
   //stringstream sin(str);
   //while(sin>>x){   }//把string作为输入流后可当cin使用,string类直接作为x所属类型,整型或字符使用。
}
  1. 复合输入——既含有数字又含有字符
    1)均视为字符,按上述字符输入相关方法进行输入
//字符与整型的转换可以按输入方式
char c=0;//’1’,’2’…’9’;
int num=0;
num=int(c-0);

2)格式化输入,比如日期输入:2019/1/22

scanf("%d/%d/%d", &y, &m, &d);

3)过滤字符读入数据函数

int read() {
    int f = 1;
    int ret = 0;
    char ch;
    do {
        ch = getchar();
        if(ch == '-') {
            f = -1;
        }
    } while(ch < '0' || ch > '9');
    do {
        ret = ret * 10 + ch - '0';
        ch = getchar();
    } while(ch >= '0' && ch <= '9');
    return ret * f;
}

你可能感兴趣的:(蓝桥杯)