C_and_CPP 板


LINE

各位先進午安。 我是新手個人自學所以有些觀念可能錯很大 以下如果有太離譜的地方還請各位先進不吝指教,謝謝。 說明有點長,我的問題在最後。 我試著寫一支UNIX下的開檔程式,用C語言寫 main傳入變數的地方是這樣的: (int argc, char *argv[]) 格式是(程式名 檔案來源 輸出目錄) 作用是把來源檔案複製一份到輸出目錄 但是實際執行的時候我不可能一個參數一個參數下 類似這樣: $:> pname a.txt b.txt c.txt new 應該這樣: $:> pname *.txt new 因為最後一個參數是輸出的目錄 所以我就把最後一個參數提出來: int itdir = argc - 1; mkdir(argv[itdir]); 然後再用for迴圈去抓argc的值: for(a=1;a<=argc-2;a++){ strcat(argv[itdir],argv[a]); FILE *file2 = fopen(argv[itdir], "w"); 這麼做有一個大問題 就是傳出的檔名會變這樣: a.txt a.txtb.txt 所以我就想從argv[itdir]下手 清空重抓不太實際,畢竟內容已經被改變了 所以我就想先把他指定給別的變數保留 迴圈中再讀出來,但是讀出來之後記憶體位置沒變內容卻改變了 如果我的參數是./new/,回來變成_/n\ew/ 可能不只如此,因為檔案開得亂七八糟 試了多次不得要領我決定改變做法: size_t length; length = strlen(argv[itdir]); 先算出目錄參數的長度 strncpy(argv[itdir],argv[itdir],length); 再從迴圈中把他拷貝回原始長度 但是我顯然太天真了,strncpy沒發揮任何作用 我想說可能是參數一參數二不能相同吧,但是從設一個tmp出來也一樣 至此我還在繼續研究 但有幾個問題想請問各位先進 1.有沒有辦法直接讀取argv的最後一個參數?不確定argv數量的時候有沒有 比較正規的作法? 2.fopen可以帶入兩個變數嗎?(fopen(argv[itdir]/argv[a], "w");)   類似這樣的。 3.如果都不行的話,還請各位先進給我一點提示,謝謝(鞠躬) --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.31.36.137
1F:推 Bencrie:1.你的想法是ok的,只是你做法有問題。2.NO 03/10 11:18
2F:→ Bencrie:strcat 會把後面的字串接到前面的字串,但是請注意他是直 03/10 11:19
3F:→ Bencrie:接蓋過去。如果你沒有另外配一個空間來存輸出字串的話,會 03/10 11:20
4F:→ Bencrie:造成不可預期的後果。 03/10 11:21
5F:→ wansincere:感謝Bencrie前輩的指教,受益菲淺。 03/10 11:54







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP