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

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

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

系統 2246 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. 牛客網 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
              
                )
              
            
          

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

參考文獻

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


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人小视频在线 | 我想看一级毛片 | 狠狠干夜夜骑 | 91国内精品久久久久影院优播 | 91在线视频免费观看 | 一本大道加勒比久久综合 | 日本在线高清不卡 | 图片区亚洲 | 国产成人精品免费 | 国产成人aa免费视频 | 在线观看免费黄色小视频 | 久久99综合国产精品亚洲首页 | 欧美激情亚洲精品日韩1区2区 | 狠狠狠狠狠狠狠狠 | 久热这里只有精 | 久久免费香蕉视频 | 被黑人做的白浆直流在线播放 | 久草在线在线视频 | 九九九国产 | 夜夜操网 | 欧美a色| 91视频老司机| 欧美日韩国产在线 | 国产福利一区二区在线观看 | h片在线看| 欧美性色欧美a在线观看 | 欧美性大战久久久久久久蜜桃 | 九九视频在线观看6 | 国产精品一区不卡 | 日本久久网 | 精品一区二区三区的国产在线观看 | 色综合亚洲七七久久桃花影院 | 国产女人又爽又大 | 欧美日韩视频一区三区二区 | 成人短视频在线观看视频 | 精品一久久香蕉国产线看观 | 91国视频在线 | 日本在线毛片视频免费看 | 五月综合视频 | 欧美一级爱操视频 | 欧美一级毛片日韩一级 |