2011-10-24 85 views
-1

我想在c中建立一個邏輯,當從用戶處取得輸入時,從無限循環中出來,否則繼續循環。但循環停止,我的程序開始等待輸入。 所以,你可以幫助我的朋友,並提出一些想法來實現邏輯。 操作系統是Linux代碼開始等待,如果條件。c編程邏輯

while(1) { 
    recv(sock,&data,sizeof(data),0); 
    printf("\nthe recieved data from the server is: %d\n",data); 
    fflush(stdout); 

    if (scanf("%c",&control)==1 && control=='b') 
    { 
     send(sock,&control,1,0); 
     break; 
    } 
    else continue; 
} 
+5

到目前爲止,你有什麼,它怎麼不工作? –

+5

在看不到代碼的情況下很難理解真正的問題。 –

+1

什麼操作系統?如何爲用戶輸入做非阻塞讀取取決於您的平臺。 – indiv

回答

0

您可能正在使用阻塞函數來獲取用戶輸入,因此程序將暫停該函數,直到用戶輸入內容爲止。

+0

你可以建議我一個非阻塞功能用戶輸入 – tod

+0

你可以等待輸入一個單獨的線程。另外,請查看此鏈接:http://cc.byexamples.com/2007/04/08/non-blocking-user-input-in-loop-without-ncurses/ –

+0

http://stackoverflow.com/問題/ 448944/c-non-blocking-keyboard-input –