PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] argc < 1是什麼意思?(附100p)
作者:
huhunhiaccc
(chchch)
2021-06-04 16:25:46
大家好
小弟想請問以下程式碼的第三第四行
argc應該是命令列中參數的數目
不過至少也會有./a吧 這樣就1個了
為甚麼argc會小於1 有甚麼其他用法呢
若第三行if成立了 那第四行的stdin又從哪來呢
還希望各位大大能幫小弟解惑 感激不敬
int main(int argc, char *argv[]) {
FILE* fin;
if (argc < 1) {
fin = stdin;
}
else {
~~~~~
}
}
作者:
nh60211as
2021-06-04 16:43:00
https://stackoverflow.com/a/58654146/11947017
然後你應該要加上#include <stdio.h>才會有FILE跟stdin的定義
https://en.cppreference.com/w/c/io/std_streams
^stdin 的介紹
作者:
huhunhiaccc
(chchch)
2021-06-04 17:04:00
所以是1程式開啟2程式的意思嗎,fin=stdin,所以我要在2程式中將我要讀的檔案存到stdin中 是這個意思嗎
作者:
nh60211as
2021-06-04 17:06:00
大概吧
作者:
huhunhiaccc
(chchch)
2021-06-04 17:16:00
100p已發 感謝喔!
作者:
LPH66
(-6.2598534e+18f)
2021-06-04 19:00:00
不是"存到 stdin 中", 你講反了stdin 是一個 FILE*, 對其使用 f 系列讀檔函式會從標準輸入讀取輸入, 相對於 fopen 開檔獲得的 FILE* 是讀取該檔案然後, 既然是這種程式碼我猜寫的人搞錯了你 ~~~~~ 省略的地方我猜有 fopen(argv[1], ...)那這樣平常沒參數時 argc == 1 就會壞掉了
作者:
huhunhiaccc
(chchch)
2021-06-05 12:23:00
請問stdin一般不是用鍵盤輸入嗎@@如果用scanf可以嗎
作者:
LPH66
(-6.2598534e+18f)
2021-06-05 22:47:00
這種寫法就是想用一個函數吃兩邊設好之後只要對 fin 讀檔, 那不管來源在標準輸入還是檔案都可以用; 你當然可以用不帶 f 的函數去讀但就要寫一堆 if
繼續閱讀
[問題] VS2008+OpenCV2.4.10+CUDA9.0
newslime
[問題] 可以用參考存取陣列元素嗎(已解決)
icetofux
[問題] NachOS 4.0 安裝
hsuan0430
[問題] 為什麼 getline() 不加 endl 就沒辦法印出
hunandy14
[問題] C++ iter = map.earse(iter)的實作
worcdlo
[問題] buffer size
pilipalabon
[問題] MFC 出現暫存太小的問題
smvenjoy
[問題] C印出問題
ooww
Re: [問題] 為什麼互為2的補數的兩個數字,必定是相
a58524andy
Fw: [問題] 為什麼互為2的補數的兩個數字,必定是相
lueichun
Links
booklink
Contact Us: admin [ a t ] ucptt.com