檔案流 學號排序

來源:互聯網
上載者:User

        很開心哈!困擾我很長時間的一個檔案流的問題解決鳥!

        問題源於英語老師讓我幫忙給全班同學根據學號排序,然後把名單給她。一百來號人就這樣給我人

工排序了!虧我還是學電腦滴!!!

        現在來貼下My Code:

#include<fstream>#include<iostream>#include<string>using namespace std;struct node     //學號、姓名{long s_id;char name[30];}date[43];inline void bubble_sort()   //根據學號從小到大,冒泡排序{int i,j;node temp;for(i=0;i<43;i++){for(j=42;j>i;j--){if(date[j].s_id<date[j-1].s_id){temp.s_id=date[j].s_id;strcpy(temp.name,date[j].name);date[j].s_id=date[j-1].s_id;        strcpy(date[j].name,date[j-1].name);date[j-1].s_id=temp.s_id;strcpy(date[j-1].name,temp.name);}}}}inline void read_write()   //檔案讀寫{int i;ifstream infile;ofstream outfile;infile.open("C:\\Users\\Lenovo\\Desktop\\學號排序\\a.txt",ios::in);outfile.open("C:\\Users\\Lenovo\\Desktop\\學號排序\\b.txt",ios::out);if(!infile.is_open() || !outfile.is_open()){cerr<<"open error!"<<endl;exit(1);}for(i=0;i<43;i++)infile>>date[i].s_id>>date[i].name;bubble_sort();for(i=0;i<43;i++)outfile<<date[i].s_id<<"  "<<date[i].name<<endl;    infile.close();outfile.close();}int main(){    read_write();return 0;}

          排序前的 a.txt:                                                               

 

排序後的 b.txt:

(註:問題,文檔中內容沒能全部截下來,但已可以說明程式的正確性啦。)

 

          代碼就以43人為準啦。(小秘密:這是一班的人數,美女也最多)

          在寫代碼的過程中還是有幾點要注意的:

          ①如前所說,這個問題我很早就遇到了,當時剛接觸C++,老師也不講檔案流這一部分。自己感覺

有點難了,也就擱置了!只想說:學習要抓緊點滴。不能有點難就不做啦。

          ②寫的過程也非一番風順的。

              問題一:把  "C:\\Users\\Lenovo\\Desktop\\學號排序\\a.txt"  這個檔案路徑寫成 "C:\Users\Lenovo\

Desktop\學號排序\a.txt"  。結果用is_open()函數發現檔案老是打不開!費了很長時間才找到這個問題。關

鍵是很多教輔書也都是錯誤寫法!!!

              問題二:把上一個問題改對了之後,還有一個更讓人無語的問題才漸漸浮出水面。我把自己電腦

設定成“隱藏副檔名”,結果老是打不開檔案!改過來之後才可以滴。我覺得電腦幾乎無所不能,關鍵

你要給出正確設定。系統越漸龐大,互相影響。個人覺得早晚是個問題。

            後感:bug讓人痛苦,debug了,又覺得一切值得。

            歡迎拍磚!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.