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

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

算法與數(shù)據(jù)結(jié)構(gòu)(十四):IO 模板總結(jié)(C++ & Python)

系統(tǒng) 2028 0

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

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

C++

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

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

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
              
                )
              
              
                ;
              
              
                // 第三個參數(shù)默認是 '\n'
              
              
    cin
              
                .
              
              
                getline
              
              
                (
              
              buff
              
                ,
              
               MAXN
              
                ,
              
              
                '\n'
              
              
                )
              
              
                ;
              
            
          

用 string 接收(C++)

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

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

C++

            
              
                int
              
               n
              
                ;
              
              
    cin 
              
                >>
              
               n
              
                ;
              
              
    cin
              
                .
              
              
                get
              
              
                (
              
              
                )
              
              
                ;
              
              
                // 否則,n 也會計入下面的 getline(),導(dǎo)致少一組數(shù)據(jù)
              
              
                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 進行數(shù)據(jù)處理比 C++ 要方便很多,但是如何能夠順利地讀入數(shù)據(jù)呢?如果使用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ǎng) 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 單行輸入

算法與數(shù)據(jù)結(jié)構(gòu)(十四):IO 模板總結(jié)(C++ & Python)_第1張圖片

算法與數(shù)據(jù)結(jié)構(gòu)(十四):IO 模板總結(jié)(C++ & Python)_第2張圖片
C++

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

Python

            
              
                #coding=utf-8
              
              
                # 本題為考試單行多行輸入輸出規(guī)范示例,無需提交,不計分。
              
              
                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 多行輸入

算法與數(shù)據(jù)結(jié)構(gòu)(十四):IO 模板總結(jié)(C++ & Python)_第3張圖片

算法與數(shù)據(jù)結(jié)構(gòu)(十四):IO 模板總結(jié)(C++ & Python)_第4張圖片
C++

            
              
                // 本題為考試多行輸入輸出規(guī)范示例,無需提交,不計分。
              
              
                #
                
                  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
              
              
                # 本題為考試多行輸入輸出規(guī)范示例,無需提交,不計分。
              
              
                import
              
               sys

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

注:有一些時候 牛客網(wǎng)要求輸出多行,每行結(jié)果對應(yīng)一個 testcase 輸入處理,這種情況下可以直接在 main 函數(shù)中進行 for 循環(huán)調(diào)用函數(shù),輸出結(jié)果。

參考文獻

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产成人h综合亚洲欧美在线 | 综合免费一区二区三区 | 欧美日本在线 | 婷婷国产成人久久精品激情 | 久久精品一区二区三区日韩 | 久久女人 | 波多野结衣乳巨码无在线观看 | 5060午夜一级毛片免费观看 | 日日噜噜夜夜狠狠视频buoke | swag国产在线| 美女久久精品 | 青青青国产免费线在 | 狠狠色噜噜狠狠狠97影音先锋 | 亚洲综合极品香蕉久久网 | 亚洲性久久久影院 | 一级成人毛片免费观看 | 色狠狠狠色噜噜噜综合网 | 色综合久久夜色精品国产 | 欧美成人精品一区二区三区 | 99爱免费视频 | 国产成视频 | 中文字幕在线观看亚洲 | 精品国产免费一区二区三区 | 福利影院在线看 | 亚洲伊人久久综合影院2021 | 国产精品视频福利 | 欧美精品一区二区三区在线播放 | 一级毛片全部免费播放 | 色人阁综合 | 羞羞网站视频 | 免费观看一级成人毛片软件 | 久草免费在线视频观看 | 神马我不卡在线观看 | 欧美高清在线视频在线99精品 | 久草视频在线播放 | 999精品影视在线观看 | 欧美精品v欧洲高清 | 国模私拍视频在线 | 日韩一级视频免费观看 | 欧美极品福利视频在线播放 | 天天干天天射综合网 |