不論是在acm/icpc這樣型別的比賽中,還是在做專案中,對於輸入輸出的格式尤為重要,不可以想當然的按自己那一套走,我們需要根據題目要求進行操作,對於第一次接觸這方面比賽的小白,最為常見的現象便是類似於下面這行**
1 printf(「請輸入一組資料:」);是不是有點燒腦了,如果要處理稍微複雜的輸入,則至少需要掌握這方面的一種方法,尤其在碰到整行讀入時可以利用getline(),將每行讀入到字串中,再對字串進行相關操作,當然方法不止以上三種,像cin.getline()等都可以進行相關操作2 cout<
倘若題目沒有要求你,千萬不要有多餘的輸出,雖然在測試的時候方便自己,但也麻煩在提交執行時注釋掉,因為電腦可沒有你的大腦那樣靈活,他要對比的資料很死板,多乙個空格少乙個空格都不行,所以,在這一塊的處理一定要細心!細心!再細心!下面我們來看下常見的輸入輸出格式有哪些
1、單組輸入輸出
已知題目有兩個變數a和b,現在就要輸入a和b,操作如下
1 //c
2 scanf("%d %d",&a,&b); printf("%d %d\n",a,b);
3 //c++
4 cin>>a>>b; cout這個很簡單,那麼如果題目輸入n組a和b怎麼辦呢
2、n組輸入輸出
1 //c
2 scanf("%d",&n);
3 while(n--)
4 //c++
5 cin>>n;
6 while(n--)//第一種寫法
3 while(scanf("%d %d",&a,&b)==2)//第二種寫法
4 while(~scanf("%d %d",&a,&b))//第三種寫法
5 //c++
6 while(cin>>a>>b)
9 }10 while(scanf("%d",&n)==1)//第二種寫法
11 17 }
18 while(~scanf("%d",&n))//第三種寫法
19 25 }
26 //c++
27 while(cin>>n)
28 //跳過空格
8 fg=1;//表示fg中已經存放了數字
9 a=10*a+c-'0';//將字元轉為整型變數
10 }
11 12 //getline()版本
13 int fg=0;//用於判斷a中是否存放了數字
14 int a=0;//每個資料讀入a中
15 string ss;
16 while(getline(cin,ss))
17 //跳過空格
22 else if(ss[cn)!=' ')
26 cn++;
27 }
28 }
29 30 //利用流的操作版本
31 string ss,st;
32 while(getline(cin,str))
2、檔案流的操作
(1)重定向(必須掌握)
1 freopen("1.txt","r",stdin);掌握了它,在本地測試時可以提前將資料存放在同目錄下的 1.txt(檔名要於freopen()中的檔名一致) 檔案中,然後在本地執行時,它將自動讀入資料。記得今年藍橋杯省賽時,有一組資料非常多(有的題目的資料無法拷貝),如果不知道重定向,那麼每次本地執行測試時,都要手動輸入,將會浪費很多時間。
(2)檔案流的操作(有的題目會有這方面要求)
1 //c++語法2 ifstream fin("in.txt");
3 ofstream fout("out.txt");
4 int a,b;
5 while(fin>>a>>b) fout<
1、每個資料間以空格相隔,行末不得有多餘的空格
//c++
if(first) first=0;//first判斷是否時每行第乙個元素
else cout<
cout<
輸入輸出系統1 特性 輸出輸出方式
io系統相對於處理機是非同步工作的 外設通常只要開始和結束時需要處理機干預 解決方法 自治控制 即將處理機和外設功能剝離 對於不同外設需要完成的功能不同,處理機需要對不同速度,不同傳輸方式 乙個字元,多個字元 的外設進行多種相應。如果錯過服務時間,則可能丟失資料 因此需要多種方式響應。解決方法 將裝...
c語言 基本輸入輸出方式
題目是很簡單的 a b 的和 1.一組輸入一組輸出 include intmain 2.多組輸入多組輸出 include intmain return0 3.指定資料量 有時會在資料的第一行要求提供資料量大小,要求輸入n,則表示有n組資料。include intmain return0 4.以特定元...
2 10黑盒測試 常見輸入輸出方式
單點測試 一組通過就有分數,最後看分數之和。多點測試 全部資料通過才算通過。1.常用的輸入方式 1 while.eof型 如果題目沒有給定輸入的結束條件,那麼就預設讀取到檔案末尾。對黑盒測試來說,所有輸入資料都是放在乙個檔案裡的,系統會讓程式去讀取這個檔案裡的輸入資料,然後執行 程式並輸出結果。那麼...