C語言緩衝區問題
今天寫了一個簡單的輸入輸出C語言程式:
#include <stdio.h>
int main()
{
//setvbuf(stdout,NULL,_IONBF,0);
char str[20];
printf("aha?");
//fflush(stdout);
scanf("%s",&str);
printf("%s",str);
}
然後我用Git的命令列介面編譯並執行:
執行的結果是,這東西不列印,等我輸入完一起列印。
後來我發現是第一句printf並沒有重新整理緩衝區!
解決方案:
- 在程式的第一行設定緩衝區為0
setvbuf(stdout,NULL,_IONBF,0);
- 手動重新整理緩衝區
fflush(stdout)
但是我想,我以前沒遇到啊,我看有人說這是windows和linux的區別??
於是我開啟windows的命令列試了一下,根本不需要手動重新整理的!
這個程式正常執行~
相關文章
- C語言清空輸入緩衝區C語言
- C語言檔案與目錄(四)緩衝區C語言
- C語言setbuf()函式:把緩衝區與流相關聯C語言函式
- C語言setvbuf()函式:設定檔案流的緩衝區C語言函式
- C語言清空輸入緩衝區的N種方法對比C語言
- C 標準庫IO緩衝區和核心緩衝區的區別
- gets()getchar()與緩衝區的問題
- 緩衝區分析
- Java NIO:緩衝區Java
- getchar緩衝區
- 主元素問題(C語言)C語言
- C 呼叫redis緩衝Redis
- Java NIO 之緩衝區Java
- Unity深度緩衝區指令Unity
- Java整數緩衝區Java
- nginx 緩衝區構造Nginx
- stdio流緩衝區
- C語言解決排序問題C語言排序
- c語言金字塔問題C語言
- C 語言常見問題(轉)
- 緩衝區溢位漏洞那些事:C -gets函式函式
- 淺談C#緩衝區溢位的祕密C#
- C語言常見使用問題2C語言
- C語言指標常見問題C語言指標
- (C語言版)猴子吃桃問題C語言
- 關於C語言的面試問題C語言面試
- Node.js Buffer(緩衝區)Node.js
- PHP的輸出緩衝區PHP
- JavaScript WebGL 幀緩衝區物件JavaScriptWeb物件
- Linux 命令 管道 緩衝區Linux
- log buffer(日誌緩衝區)
- Java NIO 之 Buffer(緩衝區)Java
- Java NIO2:緩衝區Java
- 動態更新——緩衝區物件物件
- 緩衝區溢位實驗
- 關於資料庫緩衝池的問題資料庫
- 【C語言練習題】小球反彈問題C語言
- C語言與嵌入式C語言的區別C語言