Ⅰ C語言自定義消息函數的等待怎麼寫
消息隊列的等待就是GetMessage,沒辦法自己寫,除非你打算改Windows本身。這個函數如果沒有消息進來就會釋放CPU,如果不希望等待用PeekMessage。消息循環的格式是固定的。
Ⅱ 在C語言中加入什麼可以讓輸出結果停留
getch();
getch()函數是無回顯的從控制台取得一個字元。以利用getch()函數讓程序調試運行結束後等待編程者按下鍵盤才返回編輯界面,即任意鍵繼續效果。
#include
#include
void main( )
{
printf("This is a C program. ");
getch() ;
}
(2)c語言如何讓程序等待擴展閱讀:
getch();注意事項
1、所在頭文件是conio.h。而不是stdio.h。
2、在使用之前要調用initscr(),結束時要調用endwin()。否則會出現不輸入字元這個函數
也會返回的情況。
3、在不同平台,輸入回車,getch()將返回不同數值,而getchar()統一返回10(即 )
windows平台下ENTER鍵會產生兩個轉義字元 ,因此getch返回13( )。
unix、 linux系統中ENTER鍵只產生 ,因此getch返回10( )。
MAC OS中ENTER鍵將產生 ,因此getch返回13( )。
Ⅲ 如何用c語言控制台程序進行延時等待,同時還可以執行其他函數
所謂的延時程序,就是讓程序進入一段無效循環,達到延時目的
有一個延時參數表的。
下面是一個10ms延時子程序(12MHZ)
void delay10ms(void)
{
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
}
Ⅳ C語言如何設置讓程序運行時處於等待狀態,串口收到命令後作出反應
這個 需要利用串口中斷
假設說 中斷標志位 為 TI 接收緩存為sbuf
。。。。。。
void main()
{
。。。。。
while((TI!=1)||((data=sbuf)!=0x10) ; //直到等到 有串口中斷 且接收位10h 才繼續執行
。。。。。
while(1)
{
...
}
}
不清楚可追問
Ⅳ 編C語言的程序想讓執行後的結果停下來不要一閃就過怎麼辦,
可以手動在想要停下來的地方加入暫停功能的函數。一般有如下幾種實現方式:
1 通過getch函數。
在要暫停的位置,加入getch()調用,系統會暫停程序運行,直到終端輸入一個字元為止。
2 對於部分平台,不支持getch函數的,可以通過getchar()函數,實現類似功能。
由於getchar是讀緩沖區,與getch直接讀鍵盤輸入有所不同,所以為了避免干擾,在getchar之前需要調用fflush(stdin);來清空緩沖區。
3 使用system函數。
system函數功能為調用shell命令,而系統中的pause命令可以實現暫停功能,所以通過調用
system("pause");
可以實現暫停執行的效果。
Ⅵ c語言有個可以使程序延時的語句是什麼
Sleep函數:功 能: 執行掛起一段時間 用 法: unsigned sleep(unsigned seconds); 注意: 在VC中使用帶上頭文件#include <windows.h>在VC中,Sleep中的第一個英文字元為大寫的"S" ,在標准C中是sleep, 不要大寫,簡單的說VC用Sleep, 別的一律使用sleep 在VC中,Sleep()裡面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該是Sleep(1000); 在Linux下,sleep()裡面的單位是秒,而不是毫秒。 示例: #include <windows.h> int main() { int a; a=1000; Sleep(a); return 0; } usleep函數:功能:usleep功能把進程掛起一段時間, 單位是微秒us(百萬分之一秒)。 delay函數:功 能: 將程序的執行暫停一段時間,單位是毫秒ms(千分之一秒) 用 法: void delay(unsigned milliseconds); 示例: #include<dos.h> int main(void) { sound(440); delay(500); nosound(); return 0; }delay()是循環等待,該進程還在運行,佔用處理器。sleep()不同,它會被掛起,把處理器讓給其他的進程。
Ⅶ C語言中如何做到等待
//等待方法有很多,以C語言舉例
//最簡單的可以使用sleep進行延時等待
//也可以寫個空循環語句,用來等待循環,但空循環語句不能精確等待時間
//可以使用各類鎖進行互斥等待
//可以使用信號量進行等待
//可以使用消息隊列進行等待
//再有os的情況下,可以使用線程掛起來進行等待
//此外還有很多,可以看看操作系統相關的書
Ⅷ C語言中如何讓線程等待進程執行完一部分後,線程再繼續執行
#include"afxmt.h"
//全局變數
CEventevent(FALSE,TRUE);//第二個參數為TRUE表示手動信號
event.SetEvent();
//線程中要等待的地方
WaitForSingleObject(event,INFINITE)//永遠等待
......//線程中的代碼
event.ResetEvent();//線程掛起
//-----------------------------------------------------
//以上代碼C好像不行,可以用笨辦法
//定義一個全局標識變數intflag=0;
//在線程中
while(flag==0)//在主線程中改變flag的值,一旦不為0,則執行線程中的代碼
{
Sleep(1);
}
......//線程要執行的功能
Ⅸ 在C語言中怎樣實現等幾秒鍾在執行下一個程序
用sleep函數,貌似在windows.h中。
用for(i = 0; i < 1000; i++);不行,計算機每秒可以進行上千萬,甚至上億次運算,才1000次運算哪裡能夠消耗1s...
Ⅹ c++如何讓當前進程等待一秒繼續執行
使用Sleep(1000)即可,參考代碼如下:
#include <windows.h>
#include<stdio.h>
int main()
{
int a;
a=1000;
printf("你");
Sleep(a);/* VC 使用Sleep*/
printf("好"); /*輸出「你」和「好」之間會間隔一千毫秒,即間隔一秒,sleep()的單位為毫秒*/
return 0;
}
(10)c語言如何讓程序等待擴展閱讀:
用法
sleep()函數的調用需要一個時間作為參數,代表程序執行掛起的時間間隔。通常參數的單位是秒,但在一些更加精確的操作系統中能以毫秒甚至是微秒為單位。
Sleep函數的一般形式:
Sleep(unsigned long);
其中,Sleep()裡面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該是Sleep(1000)
sleep()單位為秒,usleep()裡面的單位是微秒。