• IT笔试输入输出处理总结


    对于刚开始在OJ平台上刷题的人来说,标准输入输出是一个很让人头痛的问题,个人也经历过这样的痛苦,因此在这里进行一下总结。

    1. C++输入
      ①只有一组测试数据
      以计算a+b为例:
    #include < iostream >   
    using namespace std; 
    int main() 
    {
         int a,b; 
         cin >> a >> b;
         cout << a+b << endl; 
         return 0; 
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    有多组测试数据,直到读至输入文件结尾为止

    #include < iostream >    
    using namespace std;
    int main()
    {
           int a,b;
           while(cin >> a >> b)
                cout << a+b << endl;
           return 0;
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    ③在开始的时候输入一个N,接下来是N组数据

    #include <iostream>
    using namespace std;
    int main() {
        int a, b, n;
        cin >> n;
        while (n--) {
            cout << a + b << endl;
        }
        return 0;
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ④输入不说明有多少组数据,但以某个特殊输入为结束标志

    #include<iostream>
    using namespace std;
    int main()
    {
        int a ,b;
        while(cin>>a>>b&&(a||b))
        {cout<<a+b<<endl;}
        return 0;
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    ⑤重定向输入,保存历史

    #include<iostream>  
    #include<cstdio>  
    using namespace std;  
    int main()  
    {  
        freopen("input.txt","r",stdin);  //输入将被重定向到文件
        int a,b;  
        cin>>a>>b;  
        cout<<a+b<<endl;  
        return 0;  
    } 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    ⑥输入字符串

    #include<iostream>
    using namespace std;
    int main()
    {
        char buf[ 255 ];
        while(cin.getline( buf, 255 ));
    
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在C++中读入字符串通常使用cin.getline函数,可以接受用户的输入的字符,直到已达指定个数,或者用户输入了特定的字符。它的函数声明形式(函数原型)如下:

    istream& getline(char line[], int size, char endchar = '
    ');
    char line[]: 就是一个字符数组,用户输入的内容将存入在该数组内。
    int size : 最多接受几个字符,用户超过size的输入都将不被接受。
    char endchar :当用户输入endchar指定的字符时,自动结束,默认是回车符。
    • 1
    • 2
    • 3
    • 4

    2.C++输出

    ①一组接着一组,每一组后面有一空行

     cout << ans << endl << endl; 
    • 1

    3.C语言输入输出
    有时候C++的输入输出可能太慢,不妨使用C语言的输入输出
    主要方法有:

    printf ();//把键盘中的各类数据,加以格式控制输出到显示器屏幕上; 
    scanf ();//从键盘上输入各类数据,并存放到程序变量中; 
    puts ()://把数组变量中的一个字符串常量输出到显示器屏幕上; 
    gets ()://从键盘上输入一个字符串常量并放到程序的数组中;
    putchar ()://把变量中的一个字符常量输出到显示器屏幕上; 
    getchar ()://从键盘上输入一个字符常量,此常量就是该函数的值; 
    sscanf()://从一个字符串中提取各类数据。
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ①输入

    while(scanf("%d", &n) != EOF)//读取数字
    
    while ((c = getchar()) != EOF)//读取字符
    
    char line[1024];
    while(gets(line)) //读取一行
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ②输出

    printf("a=%d,b=%f,c=%c
    ",a,b,c); 
    • 1

    这里的格式化输出如下:

    格式字符 
    d  以十进制形式输出带符号整数(正数不输出符号)   
    o  以八进制形式输出无符号整数(不输出前缀O)   
    x  以十六进制形式输出无符号整数(不输出前缀OX)   
    u  以十进制形式输出无符号整数   
    f  以小数形式输出单精度实数   
    lf 以小数形式输出双精度实数 
    e  以指数形式输出单、双精度实数   
    g  以%f%e中较短的输出宽度输出单、双精度实数   
    c  输出单个字符   
    s  输出字符串 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    精度控制

    精度格式符以“.”开头,后跟十进制整数。意义是:如果输出数字,则表示小数的位数;如果输出的是字符, 则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
    - 结果左对齐,右边填空格
    + 输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号
    如:

    double c=24212345.24232; 
    printf(“%020.4”);  表示输出精确到小数点后4位,输出占20位,若有空余的位补0.
    • 1
    • 2
    无欲则刚 关心则乱
  • 相关阅读:
    (转)C++ typename的起源与用法
    EOS智能合约深度解析
    cmake常用变量和命令解析
    (转)Linux下source命令详解
    eosio_install.sh执行过程
    java之collection总结
    Guava之RangeMap
    java file.listFiles()按文件名称、日期、大小排序
    Java下载文件的几种方式
    Java泛型Class<T>、T与Class<?>
  • 原文地址:https://www.cnblogs.com/xjyxp/p/11435510.html
Copyright © 2020-2023  润新知