2015-10-11 39 views
3

這是我正在嘗試在ubuntu 14.04上使用gcc編譯器編譯的程序的一部分。使用fpurge(stdin)時出錯;

#include<stdio.h> 
#include<string.h> 

main() { 
    int i; 
    char str[50], pat[3]; 
    char sep; 
    printf("Enter the sting to seperate\n "); 
    scanf("%s", str); 
    fpurge(stdin); 
    printf("Enter the patern in Numbers to seperate Example : 1 2 3\n"); 
    //__fpurge(stdin); 
    scanf("%s", pat); 
    fpurge(stdin); 
    printf("Enter the seperator Example: ; or enter ,space"); 
    scanf("%c", &sep); 
} 

這是錯誤:

/tmp/cc0bHLkO.o: In function `main': 
str_sepert.c:(.text+0x4d): undefined reference to `fpurge' 
str_sepert.c:(.text+0x95): undefined reference to `fpurge' 
collect2: error: ld returned 1 exit status 
+1

根據[手冊頁](http://linux.die.net/man/3/fpurge)'fpurge' Linux下不可用。你必須自己寫。還請注意該頁面:*通常丟棄輸入緩衝區是錯誤的。* – Kninnug

+0

感謝您的回覆。我用「__fpurge()」並解決了問題。 – user3111

回答

4

fpurge是不是在標準C庫。它是非標準的,不是便攜式的。這是一個BSD功能。

http://bytes.com/topic/c/answers/845246-fpurge

+1

謝謝你的回覆。我用「__fpurge()」並解決了問題。 – user3111

+0

我應該添加你可以更新你的'include'來獲得你想要的功能,但現在看來你已經知道了。 – John

+0

我從你給的鏈接中得到了更多的解釋,謝謝。 – user3111