[問題] argc < 1是什麼意思?(附100p)

看板C_and_CPP (C/C++)作者 (chchch)時間2年前 (2021/06/04 16:25), 2年前編輯推噓1(1019)
留言20則, 3人參與, 2年前最新討論串1/1
大家好 小弟想請問以下程式碼的第三第四行 argc應該是命令列中參數的數目 不過至少也會有./a吧 這樣就1個了 為甚麼argc會小於1 有甚麼其他用法呢 若第三行if成立了 那第四行的stdin又從哪來呢 還希望各位大大能幫小弟解惑 感激不敬 int main(int argc, char *argv[]) { FILE* fin; if (argc < 1) { fin = stdin; } else { ~~~~~ } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 116.241.212.216 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1622795148.A.F54.html ※ 編輯: huhunhiaccc (116.241.212.216 臺灣), 06/04/2021 16:26:35 ※ 編輯: huhunhiaccc (116.241.212.216 臺灣), 06/04/2021 16:26:43

06/04 16:43, 2年前 , 1F

06/04 16:46, 2年前 , 2F
然後你應該要加上#include <stdio.h>才會有
06/04 16:46, 2F

06/04 16:46, 2年前 , 3F
FILE跟stdin的定義
06/04 16:46, 3F

06/04 16:47, 2年前 , 4F

06/04 16:48, 2年前 , 5F
^stdin 的介紹
06/04 16:48, 5F

06/04 17:04, 2年前 , 6F
所以是1程式開啟2程式的意思嗎,fin=stdin,所以我
06/04 17:04, 6F

06/04 17:04, 2年前 , 7F
要在2程式中將我要讀的檔案存到stdin中 是這個意思
06/04 17:04, 7F

06/04 17:04, 2年前 , 8F
06/04 17:04, 8F

06/04 17:06, 2年前 , 9F
大概吧
06/04 17:06, 9F

06/04 17:16, 2年前 , 10F
100p已發 感謝喔!
06/04 17:16, 10F

06/04 19:00, 2年前 , 11F
不是"存到 stdin 中", 你講反了
06/04 19:00, 11F

06/04 19:01, 2年前 , 12F
stdin 是一個 FILE*, 對其使用 f 系列讀檔函式會從標準輸入
06/04 19:01, 12F

06/04 19:02, 2年前 , 13F
讀取輸入, 相對於 fopen 開檔獲得的 FILE* 是讀取該檔案
06/04 19:02, 13F

06/04 19:12, 2年前 , 14F
然後, 既然是這種程式碼我猜寫的人搞錯了
06/04 19:12, 14F

06/04 19:13, 2年前 , 15F
你 ~~~~~ 省略的地方我猜有 fopen(argv[1], ...)
06/04 19:13, 15F

06/04 19:13, 2年前 , 16F
那這樣平常沒參數時 argc == 1 就會壞掉了
06/04 19:13, 16F

06/05 12:23, 2年前 , 17F
請問stdin一般不是用鍵盤輸入嗎@@如果用scanf可以嗎
06/05 12:23, 17F

06/05 22:47, 2年前 , 18F
這種寫法就是想用一個函數吃兩邊
06/05 22:47, 18F

06/05 22:48, 2年前 , 19F
設好之後只要對 fin 讀檔, 那不管來源在標準輸入還是檔案
06/05 22:48, 19F

06/05 22:48, 2年前 , 20F
都可以用; 你當然可以用不帶 f 的函數去讀但就要寫一堆 if
06/05 22:48, 20F
文章代碼(AID): #1WkUECzK (C_and_CPP)
文章代碼(AID): #1WkUECzK (C_and_CPP)