一、c語言中回車與換行scanf()函式接收輸入資料時,遇以下情況結束乙個資料的輸入:(不是結束該scanf函式,scanf函式僅在每乙個資料域均有資料,並按回車後結 束)。/n 換行
將游標移動到下一行第一格
相當於平時用的回車
/r 回車 將游標移動到當前行第一格
背景: 在計算機還沒有出現之前,有一種叫做電傳打字機(teletype model 33)的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。
於是,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字元。乙個叫做「回車」,告訴打字機把列印頭定位在左邊界;另乙個叫做「換行」,告訴打字機把紙向下移一行。
這就是「換行」和「回車」的來歷,從它們的英語名字上也可以看出一二。
後來,計算機發明了,這兩個概念也就被般到了計算機上。那時,儲存器很貴,一些科學家認為在每行結尾加兩個字元太浪費了,加乙個就可以。於是,就出現了分歧。
二、fflush函式
fflush()會強迫將緩衝區內的資料寫回引數stream 指定的檔案中. 如果引數stream為null,fflush()會將所有開啟的檔案資料更新.
scanf()函式接收輸入資料時,遇以下情況結束乙個資料的輸入:(不是結束該scanf函式,scanf函式僅在每乙個資料域均有資料,並按回車後結 束)。
① 遇空格、「回車」、「跳格」鍵。
② 遇寬度結束。
③ 遇非法輸入。
鍵盤緩衝區就可能有殘餘資訊問題。
scanf()函式應該只是掃瞄stdin流,這個殘存資訊是在stdin中
解決就要在scanf()函式之後加個fflush(stdin)
三、帶執行狀態動畫及百分比的進度條
void proc()
charbuf[103];
memset(buf,' ', sizeof(buf));
buf[0]= '[';
buf[101]= ']';
buf[102]= '\0';
inti = 0;
charindex[6] = "-\\|/\0";
while(i <= 100)
buf[i]= '=';
printf("%s[%d%%][%c]\r", buf, i, index[i % 4]);
fflush(stdout);//重新整理緩衝區
sleep(200);
i++;
printf("\n");
二、
① 遇空格、「回車」、「跳格」鍵。
② 遇寬度結束。
③ 遇非法輸入。
鍵盤緩衝區就可能有殘餘資訊問題。
scanf()函式應該只是掃瞄stdin流,這個殘存資訊是在stdin中
解決就要在scanf()函式之後加個fflush(stdin)
C語言實現文字進度條
void fun printf 資料輸入中,請稍後 n while i 50 在這裡插入描述 n資料輸入完畢 n 50s 意思是輸出乙個 50個空格 3d 意思是輸出 100 改變printf輸出字型顏色 include setconsoletextattribute getstdhandle st...
C 進度條實現
namespace progress namespace progress public mainfrm private void button1 click object sender,eventargs e private void handlethread 執行緒處理函式,實現耗時任務 cla...
Linux下用C語言實現彩色的進度條
在linux下實現進度條程式.通過makefile進行編譯.建議自主完成乙個彩色的進度條.1 建立makefile檔案並編寫 2 vim makefile 如下 pb pb.c gcc pb.c o pb phony clean clean rm f pb.i pb.s pb.o pb 3 建立pr...