[問題] C的fflush()沒作用

看板MacDev作者 (洨賈斯汀)時間9年前 (2014/11/10 23:09), 9年前編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/1
小弟是剛學程式語言的新手,最近買了本C語言教學手冊(洪維恩)就開始摸索了 因為本身是使用Macbook,所以直接用xcode寫看看C語言 大部份遇到問題都是自己google,本身商科出身身邊沒人可以問Q_Q 這兩天做題目練習上卡在fflush()這,程式碼如下 #include <stdio.h> #include <stdlib.h> int main(void) { char x[10]; char y[10]; printf("enter a string: "); scanf("%s",x); fflush(stdin); printf("enter another string: "); scanf("%s",y); printf("%s \n%s\n",x,y); return 0; } 我打 "aaa bbb",出來的結果應該是會因為fflush()的關係 在第二題停留要我輸入第二 行 但試過加上fflush()和沒加,出來的結果完全一樣 請問是我哪裡寫錯了嗎?? 另外請問conio.h這個標頭檔在xcode無法執行嗎? 那要怎麼使用getch()和getche()這兩個函數 -- Sent from my iPhone -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.82.139.27 ※ 文章網址: http://www.ptt.cc/bbs/MacDev/M.1415632192.A.096.html

11/11 00:48, , 1F
11/11 00:48, 1F

11/11 09:13, , 2F
fflush 在 C 標準中並沒有對 stdin 做定義。
11/11 09:13, 2F
我也試過curses.h也無解,不會出現錯誤,但一run就會出現fail... ※ 編輯: Caramel0519 (111.82.139.27), 11/11/2014 17:18:33

11/11 18:11, , 3F
flush 操作應該是用在 output stream 的吧 = =||
11/11 18:11, 3F
https://www.youtube.com/watch?v=j2IgenrN44I
我是參考這個影片寫的 還是我寫法有錯@@? ※ 編輯: Caramel0519 (223.138.217.48), 11/11/2014 21:59:53

11/12 18:43, , 4F
因為這個函示沒對 stdin 定義,所以每個編譯器實作會不同
11/12 18:43, 4F

11/12 18:44, , 5F
所以你不能去預期一個特定編譯器去呼叫 fflush(stdin) 的結果
11/12 18:44, 5F
文章代碼(AID): #1KODL02M (MacDev)