[英]How fgets() really works to read from stdin?
因此,如果我必須使用fgets()
兩次從鍵盤讀取兩個不同的輸入,我應該指定兩個不同的緩沖區還是只重用相同的緩沖區? 有什么不同?
使用相同的緩沖區:
char buffer[100];
fgets(buffer, sizeof(buffer), stdin);
fgets(buffer, sizeof(buffer), stdin);
對不同的輸入使用不同的緩沖區:
char buffer_x[100];
char buffer_y[100];
fgets(buffer_x , sizeof(buffer_x), stdin);
fgets(buffer_y , sizeof(buffer_y), stdin);
答案取決於您的用例。 根據邏輯的保留要求,這兩種用法可能同樣有效或無效。
如果你的程序的控制流程是這樣的
read first input process first input, never need it after this read second input carry on
然后你對第一種方法沒問題,重復使用相同的緩沖區。
如果你在閱讀第二個輸入后必須使用第一個輸入,你需要保留第一個輸入,比如
read first input process first input, but need it later also read second input carry on do something with first and second inputs
那么,你需要單獨的緩沖區。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.