[問題] 記錄print的最後一行

看板C_and_CPP作者 (電火)時間15年前 (2010/07/27 07:26), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) int main(int argc, char* argv[]) { unif01_Gen *gen; int test,k,b,p,seed,i; if(argc<2){ printf("Usage:%s Crush<1,2,3> b1 b2 ... bn\n",argv[0]); exit(1); } test = atoi(argv[1]); k = 97; p = 2147482621; seed = 846213579; for (i=2;i<=argc;i++){ b = atoi(argv[i]); gen = Chris_CreateATNE(k,b,p,seed); if(test==1)bbattery_SmallCrush(gen); else if(test==3)bbattery_BigCrush(gen); else bbattery_Crush(gen); } Chris_DeleteATNE(gen); return 0; } 程式中需要使用bbattery這個外部的package程式 但我不清楚那個程式的運作內容 只知道當我給一些數字…等,它就會自動執行 在執行過程中,會不斷的print一些訊息 而我僅需要它print出來最後一行的訊息 我想請問的是 有沒有辦法把那行訊息儲存下來,之後再print出來? 例如: 它整個程式執行完畢的最後一行是 "all pass" 我把它儲存在"a"中,之後,再把"a"的訊息print出來 感謝 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) gcc -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.125.72.48

07/27 16:35, , 1F
感覺這樣你必須把stdout(或stderr)導掉, 然後在最後一行
07/27 16:35, 1F

07/27 16:35, , 2F
之前導回原本的資料流, 不過你有辦法控制或修改這個外部
07/27 16:35, 2F

07/27 16:36, , 3F
程式, 切換資料流與何時印最後一行嗎....@_@"
07/27 16:36, 3F

07/27 16:41, , 4F
tail是你的好夥伴
07/27 16:41, 4F

07/27 20:12, , 5F

07/31 05:31, , 6F
感謝,繼續思考
07/31 05:31, 6F
文章代碼(AID): #1CJeeVSa (C_and_CPP)