>a>>b){//...}2.輸入不說明有多少個Input,以某個特殊輸入為結束標志C++//示例1inta,b;while(cin>>a>>b){if(a==0&&b==0)break;//...}//示例2intn;whi" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

算法與數據結構(十四):IO 模板總結(C++ & Python)

系統 2182 0

不少網絡筆試不像 LeetCode 幫你完成 I/O,需要手動完成;個人深受其痛,現將常用的 IO 模板總結與此,分別總結了 C/C++ 和 Python 代碼

1. 輸入不說明有多少個 Input,以 EOF 為結束標志

C++

            
              
                int
              
               a
              
                ,
              
               b
              
                ;
              
              
                while
              
              
                (
              
              cin 
              
                >>
              
               a 
              
                >>
              
               b
              
                )
              
              
                {
              
              
                // ...
              
              
                }
              
            
          

2. 輸入不說明有多少個 Input,以某個特殊輸入為結束標志

C++

            
              
                // 示例 1
              
              
                int
              
               a
              
                ,
              
               b
              
                ;
              
              
                while
              
              
                (
              
              cin 
              
                >>
              
               a 
              
                >>
              
               b
              
                )
              
              
                {
              
              
                if
              
              
                (
              
              a 
              
                ==
              
              
                0
              
              
                &&
              
               b 
              
                ==
              
              
                0
              
              
                )
              
              
                break
              
              
                ;
              
              
                // ...
              
              
                }
              
              
                // 示例 2
              
              
                int
              
               n
              
                ;
              
              
                while
              
              
                (
              
              cin 
              
                >>
              
               n 
              
                &&
              
               n 
              
                !=
              
              
                0
              
              
                )
              
              
                {
              
              
                // ...
              
              
                }
              
            
          

3. 指示有 N 個 Input

C++

            
              
                int
              
               n
              
                ;
              
              
    cin 
              
                >>
              
               n
              
                ;
              
              
                int
              
               a
              
                ,
              
               b
              
                ;
              
              
                while
              
              
                (
              
              n
              
                --
              
              
                )
              
              
                {
              
              
        cin 
              
                >>
              
               a 
              
                >>
              
               b
              
                ;
              
              
                }
              
            
          

Python3

            
              n 
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                )
              
              
                )
              
              
                for
              
               _ 
              
                in
              
              
                range
              
              
                (
              
              n
              
                )
              
              
                :
              
              
                # ...
              
            
          

4. 指示有 N 組輸入,并以某個特殊輸入退出

C/C++

            
              
                int
              
               n
              
                ;
              
              
                while
              
              
                (
              
              cin 
              
                >>
              
               n 
              
                &&
              
               n 
              
                !=
              
              
                0
              
              
                )
              
              
                {
              
              
                int
              
               a
              
                ,
              
               b
              
                ;
              
              
                for
              
              
                (
              
              
                int
              
               i 
              
                =
              
              
                0
              
              
                ;
              
               i 
              
                <
              
               n
              
                ;
              
               i
              
                ++
              
              
                )
              
              
                {
              
              
            cin 
              
                >>
              
               a 
              
                >>
              
               b
              
                ;
              
              
                // ...
              
              
                }
              
              
                }
              
            
          

5. 輸入是一整行(包括空格)

用 char[] 接收(C/C++)

            
              
                const
              
              
                int
              
               MAXN 
              
                =
              
              
                1000
              
              
                ;
              
              
                char
              
               buff
              
                [
              
              MAXN
              
                ]
              
              
                ;
              
              
                // C
              
              
                gets
              
              
                (
              
              buff
              
                )
              
              
                ;
              
              
                puts
              
              
                (
              
              buff
              
                )
              
              
                ;
              
              
                // 輸出
              
              
                // C++
              
              
    cin
              
                .
              
              
                getline
              
              
                (
              
              buff
              
                ,
              
               MAXN
              
                )
              
              
                ;
              
              
                // 第三個參數默認是 '\n'
              
              
    cin
              
                .
              
              
                getline
              
              
                (
              
              buff
              
                ,
              
               MAXN
              
                ,
              
              
                '\n'
              
              
                )
              
              
                ;
              
            
          

用 string 接收(C++)

            
                  string s
              
                ;
              
              
                getline
              
              
                (
              
              cin
              
                ,
              
               s
              
                )
              
              
                ;
              
              
                // 第三個參數默認是 '\n'
              
              
                getline
              
              
                (
              
              cin
              
                ,
              
               s
              
                ,
              
              
                '\n'
              
              
                )
              
              
                ;
              
            
          

6. 輸入是多行(包括空格)

C++

            
              
                int
              
               n
              
                ;
              
              
    cin 
              
                >>
              
               n
              
                ;
              
              
    cin
              
                .
              
              
                get
              
              
                (
              
              
                )
              
              
                ;
              
              
                // 否則,n 也會計入下面的 getline(),導致少一組數據
              
              
                while
              
              
                (
              
              n
              
                --
              
              
                )
              
              
                {
              
              
        string s
              
                ;
              
              
                getline
              
              
                (
              
              cin
              
                ,
              
               s
              
                )
              
              
                ;
              
              
                }
              
            
          

7. 從文件讀取

C++

            
                  ifstream 
              
                fin
              
              
                (
              
              
                "in.txt"
              
              
                )
              
              
                ;
              
              
    ofstream 
              
                fout
              
              
                (
              
              
                "out.txt"
              
              
                )
              
              
                ;
              
              
                int
              
               a
              
                ,
              
               b
              
                ;
              
              
                while
              
              
                (
              
              fin 
              
                >>
              
               a 
              
                >>
              
               b
              
                )
              
              
                {
              
              
        fout 
              
                <<
              
               a 
              
                +
              
               b 
              
                <<
              
               endl
              
                ;
              
              
                }
              
              
    
    fin
              
                .
              
              
                close
              
              
                (
              
              
                )
              
              
                ;
              
              
    fout
              
                .
              
              
                close
              
              
                (
              
              
                )
              
              
                ;
              
            
          

8. Python IO 模板

在筆試時,有時候用 Python 進行數據處理比 C++ 要方便很多,但是如何能夠順利地讀入數據呢?如果使用input(),那么輸入時不能有空格分割,這不是我們想要的。 比如我們需要一次讀取一行,可以使用sys.stdin.

            
              
                for
              
               line 
              
                in
              
               sys
              
                .
              
              stdin
        
              
                #operate(line)
              
              
                #print(line)
              
            
          

這樣可以一次讀取一整行。 也可以這樣做:

            
              
                while
              
              
                True
              
              
                :
              
              
        line 
              
                =
              
               sys
              
                .
              
              stdin
              
                .
              
              readline
              
                (
              
              
                )
              
              
                #operate(line)
              
              
                #print(line)
              
              
                if
              
               line 
              
                ==
              
              
                ''
              
              
                break
              
            
          

還有,如果在輸出時,print 的換行很不好用的話,可以使用sys.stdout.write(),這樣容易控制整個輸出。

            
              
                def
              
              
                test
              
              
                (
              
              
                )
              
              
                :
              
              
        N 
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                )
              
              
                )
              
              
        inputlist 
              
                =
              
              
                [
              
              
                ]
              
              
        area 
              
                =
              
              
                0
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              N
              
                )
              
              
                :
              
              
            line 
              
                =
              
              
                input
              
              
                (
              
              
                )
              
              
            line_res 
              
                =
              
               rule
              
                (
              
              line
              
                )
              
              
                print
              
              
                (
              
              line_res
              
                )
              
            
          

9. ??途W IO 模板

            
              
                def
              
              
                insert_sort2
              
              
                (
              
              
                )
              
              
                :
              
              
    N 
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                )
              
              
                )
              
              
    str_input 
              
                =
              
              
                input
              
              
                (
              
              
                )
              
              
    ary 
              
                =
              
              
                list
              
              
                (
              
              
                map
              
              
                (
              
              
                int
              
              
                ,
              
               str_input
              
                .
              
              split
              
                (
              
              
                )
              
              
                )
              
              
                )
              
              
                # count = len(ary)
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
               N
              
                )
              
              
                :
              
              
        key 
              
                =
              
               i 
              
                -
              
              
                1
              
              
        mark 
              
                =
              
               ary
              
                [
              
              i
              
                ]
              
              
                # 注: 必須將ary[i]賦值為mark,不能直接用ary[i]
              
              
                while
              
               key 
              
                >=
              
              
                0
              
              
                and
              
               ary
              
                [
              
              key
              
                ]
              
              
                >
              
               mark
              
                :
              
              
                if
              
              
                (
              
              ary
              
                [
              
              key
              
                ]
              
              
                +
              
               mark
              
                )
              
              
                %
              
              
                2
              
              
                ==
              
              
                1
              
              
                :
              
              
                ary
              
                [
              
              key 
              
                +
              
              
                1
              
              
                ]
              
              
                =
              
               ary
              
                [
              
              key
              
                ]
              
              
            key 
              
                -=
              
              
                1
              
              
        ary
              
                [
              
              key 
              
                +
              
              
                1
              
              
                ]
              
              
                =
              
               mark
    res 
              
                =
              
              
                sorted
              
              
                (
              
              ary
              
                )
              
              
                return
              
               res

            
          

9.1 單行輸入

算法與數據結構(十四):IO 模板總結(C++ & Python)_第1張圖片

算法與數據結構(十四):IO 模板總結(C++ & Python)_第2張圖片
C++

            
              
                // 本題為考試單行多行輸入輸出規范示例,無需提交,不計分。
              
              
                #
                
                  include
                
                
                  
                
              
              
                using
              
              
                namespace
              
               std
              
                ;
              
              
                int
              
              
                main
              
              
                (
              
              
                )
              
              
                {
              
              
                int
              
               a
              
                ,
              
              b
              
                ;
              
              
                while
              
              
                (
              
              cin 
              
                >>
              
               a 
              
                >>
              
               b
              
                )
              
              
                // 注意,如果輸入是多個測試用例,請通過while循環處理多個測試用例
              
              
        cout 
              
                <<
              
               a
              
                +
              
              b 
              
                <<
              
               endl
              
                ;
              
              
                }
              
            
          

Python

            
              
                #coding=utf-8
              
              
                # 本題為考試單行多行輸入輸出規范示例,無需提交,不計分。
              
              
                import
              
               sys 

              
                for
              
               line 
              
                in
              
               sys
              
                .
              
              stdin
              
                :
              
              
    a 
              
                =
              
               line
              
                .
              
              split
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              
                int
              
              
                (
              
              a
              
                [
              
              
                0
              
              
                ]
              
              
                )
              
              
                +
              
              
                int
              
              
                (
              
              a
              
                [
              
              
                1
              
              
                ]
              
              
                )
              
              
                )
              
            
          
            
              n 
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                )
              
              
                )
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              n
              
                )
              
              
                :
              
              
	values 
              
                =
              
              
                list
              
              
                (
              
              
                map
              
              
                (
              
              
                int
              
              
                ,
              
              
                input
              
              
                (
              
              
                )
              
              
                .
              
              strip
              
                (
              
              
                )
              
              
                .
              
              split
              
                (
              
              
                )
              
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              values
              
                [
              
              
                0
              
              
                ]
              
              
                +
              
               values
              
                [
              
              
                1
              
              
                ]
              
              
                )
              
            
          

9.2 多行輸入

算法與數據結構(十四):IO 模板總結(C++ & Python)_第3張圖片

算法與數據結構(十四):IO 模板總結(C++ & Python)_第4張圖片
C++

            
              
                // 本題為考試多行輸入輸出規范示例,無需提交,不計分。
              
              
                #
                
                  include
                
                
                  
                
              
              
                #
                
                  include
                
                
                  
                
              
              
                using
              
              
                namespace
              
               std
              
                ;
              
              
                int
              
              
                main
              
              
                (
              
              
                )
              
              
                {
              
              
                //freopen("1.in","r",stdin);
              
              
                int
              
               n
              
                ,
              
              ans 
              
                =
              
              
                0
              
              
                ;
              
              
    cin 
              
                >>
              
               n
              
                ;
              
              
                for
              
              
                (
              
              
                int
              
               i 
              
                =
              
              
                0
              
              
                ;
              
               i 
              
                <
              
               n
              
                ;
              
               i
              
                ++
              
              
                )
              
              
                {
              
              
                for
              
              
                (
              
              
                int
              
               j 
              
                =
              
              
                0
              
              
                ;
              
               j 
              
                <
              
               n
              
                ;
              
               j
              
                ++
              
              
                )
              
              
                {
              
              
                int
              
               x
              
                ;
              
              
                scanf
              
              
                (
              
              
                "%d"
              
              
                ,
              
              
                &
              
              x
              
                )
              
              
                ;
              
              
            ans 
              
                +
              
              
                =
              
               x
              
                ;
              
              
                }
              
              
                }
              
              
    cout 
              
                <<
              
               ans 
              
                <<
              
               endl
              
                ;
              
              
                return
              
              
                0
              
              
                ;
              
              
                }
              
            
          

Python

            
              
                #coding=utf-8
              
              
                # 本題為考試多行輸入輸出規范示例,無需提交,不計分。
              
              
                import
              
               sys

              
                if
              
               __name__ 
              
                ==
              
              
                "__main__"
              
              
                :
              
              
                # 讀取第一行的n
              
              
    n 
              
                =
              
              
                int
              
              
                (
              
              
                input
              
              
                (
              
              
                )
              
              
                )
              
              
    ans 
              
                =
              
              
                0
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              n
              
                )
              
              
                :
              
              
                # 讀取每一行
              
              
        line 
              
                =
              
              
                input
              
              
                (
              
              
                )
              
              
                # 或者 line = sys.stdin.readline()
              
              
                # 把每一行的數字分隔后轉化成int列表
              
              
        values 
              
                =
              
              
                list
              
              
                (
              
              
                map
              
              
                (
              
              
                int
              
              
                ,
              
               line
              
                .
              
              strip
              
                (
              
              
                )
              
              
                .
              
              split
              
                (
              
              
                )
              
              
                )
              
              
                )
              
              
                for
              
               v 
              
                in
              
               values
              
                :
              
              
            ans 
              
                +=
              
               v
    
              
                print
              
              
                (
              
              ans
              
                )
              
            
          

注:有一些時候 ??途W要求輸出多行,每行結果對應一個 testcase 輸入處理,這種情況下可以直接在 main 函數中進行 for 循環調用函數,輸出結果。

參考文獻

[1] Python IO 模板
[2] 備忘-IO 模板
[3] 牛客網標準輸入輸出


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 衡水市| 阿巴嘎旗| 蒙阴县| 渝北区| 塔河县| 乐至县| 宝鸡市| 南通市| 舞阳县| 平武县| 九龙县| 韶山市| 朝阳区| 绿春县| 唐河县| 图片| 白朗县| 缙云县| 尼玛县| 仙居县| 浪卡子县| 阿坝| 大理市| 九龙城区| 五莲县| 习水县| 额济纳旗| 连江县| 色达县| 韶山市| 广宁县| 兴宁市| 上栗县| 石城县| 维西| 房产| 荣昌县| 綦江县| 怀柔区| 井冈山市| 景泰县|