Ⅰ c語言如何讓輸入函數再隔一段時間輸入端無回應後繼續運行後面的程序
#include <stdio.h>
#include <conio.h>
#include <time.h>
int main () {
int x= -9999; //初值
clock_t t0,dt;
int ttt= 2; //假定等待時間設2秒
t0 = clock(); //計時開始
printf("input x:\n");
while( !_kbhit() ) {
dt = clock() - t0;
if (dt >= ttt * CLOCKS_PER_SEC) goto Lab;
}
scanf("%d",&x);
Lab: printf("x=%d",x); //超時,跳到這行。
return 0;
}
超時,則輸出 -9999, 不超時,輸出拍入的值
Ⅱ c語言輸入輸出函數的格式
一:格式輸出函數printf()
1、調用形式一般為:printf("格式化控制字元串",輸出表列);
2、格式化控制字元串用於指定輸出格式,它有三種形式:
1、格式說明符:規定了相應輸出表列內容的輸出格式,以%打頭,如%d、%o等
2、轉義字元:用來輸出轉義字元所代表的控制代碼或者特殊字元,比如常用的『\n'、『\t'
3、普通字元:需要原樣輸出的字元。
3、輸出表列為若干需要輸出的數據項,它與格式說明符在數量和類型上一一對應;
4、格式字元m指定輸出數據所佔寬度,n對實數表示輸出n位小數,對字元串表示截取的字元個數,+表示右對齊,通常省略。
—表示左對齊,l用於長整型數據,可加在d、o、x、u前,更多格式說明符及其組合形式如下所示:
格式字元
數據對象
輸出形式
數據輸出方法
%(+)-md
int
unsigned int
short
unsigned short
char
十進制整數
1、無m按實際位數輸出
2、有m輸出m位;超過m位,按實際位數輸出,不足補空格
3、有+(默認為+)右對齊(左補空格)
4、有-左對齊(右補空格)
%(+)-mo
八進制整數
%(+)-mx
十六進制整數
%(+)-mu
無符號整數
%(+)-mld
long
unsigned long
十進制整數
%(+)-mlo
八進制整數
%(+)-mlx
十六進制整數
%(+)-mlu
無符號整數
%(+)-m.nf
float
double
十進制小數
%(+)-m.ne
十進制指數
%(+)-g
自動選用%f和%e中較短的輸出寬度輸出單、雙精度浮點數
%(+)-mc
char
int
short
單個字元
1、無m輸出單個字元
2、有m輸出m位,補空格
3、有+(默認為+)右對齊(左補空格)
4、有-左對齊(右補空格)
%(+)-m.ns
字元串
一串字元
1.無m、n按實際字元串輸出全部字元
2、有m、n僅輸出前n個字元,補空格
3.有+(默認為+)右對齊(左補空格)
4、有-左對齊(右補空格)
二:格式輸入函數scanf()
1、 調用格式一般為:scanf("格式化控制字元串",地址表列);
2、格式化控制字元串和printf()函數含義相似,所不同的是它是對輸入格式進行控制;
3、地址表列是有若乾等待輸入的數據所對應的內存單元地址組成,由逗號隔開,一般形式為&a,a為變數;
4、地址表列在數量和類型上和格式化控制字元串中的格式說明符一一對應;
5、格式字元h表示輸入短型數據,可用在d、o、x前面,m指定輸入數據所佔寬度,
*表示對應的數據項讀入後不賦給相應的變數,更多格式說明符及其組合如下
格式字元
數據對象
輸入形式
數據輸入方法
%md
int
short
unsigned int
unsigned short
十進制整數
1、無m按實際位數輸入
2、有m輸入m位,不足m則跟回車鍵
%mo
八進制整數
%mx
十六進制整數
%mld
long
unsigned long
十進制整數
%mlo
八進制整數
%mlx
十六進制整數
%mlf
float
double
十進制整數
%mle
%mc
char
單個字元
1、無m取單個字元
2、有m輸入m位,僅取第一個字元
%ms
字元串
一串字元
1、無m取回車或空格前若干字元
2、有m僅取前m字元
Ⅲ c語言中等待的函數是什麼
如果對時間要求非常精確,可以考慮採用和匯編中處理的情況,看看cpu的頻率,將for命令分解成匯編語言,看多少毫秒執行一次命令,然後設置循環次數,這樣足夠精確,實際上在匯編下也是這么做的。
Ⅳ C語言scanf語句
scanf()是C語言標准庫中的輸入函數,聲明包含在stdio.h文件中,因此要使用該函數,必須載入#include<stdio.h>頭文件。當執行到scanf函數時,程序就暫停等待用戶輸入,該函數只接受變數的地址,格式為&變數名。是一個阻塞式的函數,等用戶輸入完畢後,則將值賦值給變數,至此函數調用完畢。敲回車鍵告知計算機鍵入完畢。
函數原型:int scanf(const char *format,...);
說明:scanf() 是從標准輸入流stdio (標准輸入設備,一般是鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
其調用形式為: scanf("<格式說明字元串>",<變數地址>);變數地址要求有效,並且與格式說明的次序一致。
使用示例:
//使用scanf函數輸入一個字元變數。
chara;
scanf(「%c」,&a);
//同時輸入多個值。
scanf(「%d,%d」,&num1,num2);
//在內部不能使用 轉義字元,否則沒完沒了。
scanf(「%d 」,&a);
注意:在這里兩個佔位符之間是,隔開,則要求在輸入時也使用逗號隔開如輸入1,2。此時為num1=1,num2=2。若內部為「%d#%d」則輸入1#2。若內部為「%dy%d」,則輸入1y2。如果中間的字元是空格,則在輸入時可以用空格隔開,也可以敲tab鍵或者是回車鍵作為分隔符隔開,後兩者可以看做是由空格組成的。
擴展:格式說明符
轉換字元(就是%後跟的部分)
a 讀浮點值(僅適用於 C++)
A 讀浮點值(僅適用於 C++)
c 讀單字元
d 讀十進制整數
i 讀十進制、八進制、十六進制整數
e 讀浮點數
E 讀浮點數
f 讀浮點數
F 讀浮點數(僅適用於 C++)
g 讀浮點數
G 讀浮點數
o 讀八進制數
s 讀字元串
x 讀十六進制數
X 讀十六進制數
p 讀指針值
n 至此已讀入值的等價字元數
u 讀無符號十進制整數
[ ] 掃描字元集合
% 讀 % 符號(百分號)
附加格式說明字元表修飾符說明
L/l 長度修飾符 輸入"長"數據
h 長度修飾符 輸入"短"數據
W 整型常數 指定輸入數據所佔寬度
* 表示本輸入項在讀入後不賦值給相應的變數
Ⅳ C語言中輸入函數等待輸入和結束輸入
你隨便輸入一個字母試下,馬上就返回,除了你本就是要輸入%c
Ⅵ C語言中的鍵盤輸入函數。。。
k=k&0xff?0x00ff:k>>8;其實就是
if(k&0xff) {
k=0x00ff;
}else {
k=k>>8;
}的簡寫。
其實0xff和0x00ff是一樣的,都表示同一個十六進制的值。
書上這么寫,沒有錯;至於為什麼,就不好說了。
可能是讓你多學點知識,也可能是現在很多書其實在編寫時並不是很認真的。畢竟盡信書不如無書!
後面的k>>8是把0xff的值右移8位,達到計算的目的(具體什麼目的要看具體內容)
Ⅶ 我現在學c語言,c語言程序經常需要用到暫停,一般都是用getch函數,但這個函數會有一個等待輸入的
這個函數主要是想讓運行結果仍然保持,不會一閃而過。
你可以試試去掉的話,運行完,運行框也就沒了
Ⅷ c語言中 等待的函數是什麼呢
包含頭文件:
#include
<windows.h>
調用
Sleep(3000);
就是等待3000毫秒(3秒)。第一個字母S大寫。
--------
也可以自己寫一個
等待
整數秒的函數:
#include
<time.h>
void
wait
(
int
seconds
)
{
clock_t
endwait;
endwait
=
clock
()
+
seconds
*
CLK_TCK
;
while
(clock()
<
endwait)
{}
}
調用
wait(3);
就是等待3秒
Ⅸ C語言輸入函數
getc():
調用方式:int getc(FILE *stream)
它返回指定輸入流stream的當前位置的下一個字元,並增加文件的位置指示器.
getch():
調用方式:int getch(void)
getch()從控制台讀取一個字元,但不把該字元顯示在屏幕上,也就是不回顯.
getche():
調用方式:int getche(void)
getche()從控制台讀取一個字元,把該字元顯示在屏幕上,也就是回顯.
getchar():
調有方式:int getchar(void)
getchar()從控制台讀取一個字元,並回顯,它和getch(),getche()的不同在於,它等到輸入一個回車才結束,就算你輸入了一個字元串,它也只取其中的第一個字元.
getchar()頭文件為string.h,即需有# include<string.h>
其他的頭文件為conio.h
呃,你可以使用追問嗎~我這太不方便了,請問你用的什麼編譯器?
呃,這樣子啊,對gcc我不清楚了就,也許其不支持或者文件庫不一樣,你可以針對查查,
在vc中我試了沒有問題。。。