OJ的輸入輸出總結C 版

2021-10-04 13:34:05 字數 2950 閱讀 5035

最近在找實習,做筆試的時候,有時候連輸入輸出都要折騰很久,就大大降低了效率,總不能死在了輸入輸出上吧!自己平時熟悉c++,總結下c++常見的輸入輸出,希望下次筆試輸入輸出不再是問題:-)

oj(online judge)的工作原理是我們提交程式,後台編譯程式,然後執行編譯好的程式,將結果儲存在檔案中,然後對比檔案比較使用者的輸出和標準答案,然後得出通過率。

oj模式的題目,程式需要stdin(標準輸入)讀取輸入,然後stdout(標準輸出)來列印結果,舉個例子,你可以使用c++的cin來讀取輸入,然後使用c++的cout來輸出結果。如果oj一次處理多個case,**需要迴圈處理,一般通過while迴圈來處理多個case。

常見的輸入格式:

[程式設計題]a+b

計算a+b的和

每行包含兩個整數a和b

對於每行輸入對應輸出一行a和b的和

輸入1 5

輸出

#include

using

namespace std;

intmain()

先輸入乙個組數n,然後再迴圈讀取n組資料。

#include

using

namespace std;

intmain()

return0;

}

因為oj最終只比較檔案,就不用儲存所有輸入,可以讀一組資料計算一組資料。

當讀取字串的時候需要注意,cin不能讀取空白字元,比如空格,如果遇到空格則會直接終止字串。

#include

#include

using

namespace std;

intmain()

執行的結果:

abc 123

abc請按任意鍵繼續. .

.

如果要讀取整行字串,可以使用getline()cin.getline()這兩個函式,兩個函式都是遇到定界符,則結束這行的字串,定界符預設設定為回車。兩個函式略有不同的是,getline()操作的物件是string,cin.getline()操作的物件的char陣列。詳細的定義如下:

getline(),要使用這個函式需要包含標頭檔案,

istream&

getline

(istream& is, string& str,

char delim)

;istream&

getline

(istream& is, string& str)

;

#include

#include

using

namespace std;

intmain()

執行結果:

abc 123

abc 123請按任意鍵繼續. .

.

cin.getline()函式讀取至新行結尾或直到達到最大限制的整行文字。函式定義如下:

// (buffer, stream_size, delimiter)

istream&

getline

(char*,

int size,

char

='\n'

)// the delimiter character is considered as '\n'

istream&

getline

(char*,

int size)

提取字元直到定界符。

將字元儲存在緩衝區中。

提取的最大字元數為size-1

#include

using

namespace std;

intmain()

執行結果:

no bug forever

no bug forever請按任意鍵繼續. .

.

例子:

輸入為6個數字,每個數字用逗號,分隔,將數字儲存到乙個一維陣列中。

11,22,33,44,55,66

#include

#include

#include

#include

using

namespace std;

void

test()

} istringstream isstr

(str)

; string tmp;

while

(isstr >> tmp)

for(

int& i : vec)

cout << endl;

}int

main()

執行結果:

11,22,33,44,55,66

11 22 33 44 55 66

請按任意鍵繼續. .

.

string str;

vector v;

while

(getline

(cin, str)

)//讀取輸入的一行資料

C 輸入輸出總結

返回值 引數功能 istream char int,char 第乙個引數用於放入輸入字串的位址,第二個引數表示讀取的最大字元數 1,第三個表示用作分界符的字元。返回對cin物件的引用。該函式讀取到最大數目字元或遇到分界符為止。分界符留在輸入流中 istream char int 第乙個引數用於放入輸...

C常用輸入輸出總結

一 輸入輸出格式 1 整型 scanf d m int scanf ld m long int scanf lld m long long int2 浮點型 1 基本格式 scanf f m float scanf lf m double2 加域寬 includeint main return 0 ...

C語言的輸入輸出總結

putchar 把變數中的乙個字元常量輸出到顯示器螢幕上 getchar 從鍵盤上輸入乙個字元常量,此常量就是該函式的值 printf 把鍵盤中的各類資料,加以格式控制輸出到顯示器螢幕上 scanf 從鍵盤上輸入各類資料,並存放到程式變數中 puts 把陣列變數中的乙個字串常量輸出到顯示器螢幕上 g...