乙個簡單的問題:在你們編碼的時候,有沒有遇到過這樣乙個問題,無法實現在cmd黑視窗下或批處理中休眠(使程式等待)一段時間?
我就遇到過。
我想,總是有乙個方法的。
經過了一段時間的思考,我想到了我正學習的c++有這麼乙個庫:
windows.h(windows sdk)
下面有專門使程式休眠的乙個函式,大佬們肯定已經猜到了,就是下面這個:
//typedef unsigned long dword;
void _stdcall sleep
(dword dwmilliseconds)
;//ps:在引數中填的是毫秒數 1s=1000ms
這個sleep
函式,為編寫c++程式的猿們提供了便利。不用去想那些偏門方子。
而我,也想拿這個練練手,把sleep
包裝一下。
成為乙個功能強大,方便程式設計師的小工具:ezwait。(easywait)
這個程式通過接受命令行引數列表來識別使用者發出的命令。
所以,第一步,main
函式要這麼寫:
int
main
(int argc,
char
* ar**)
//argc引數個數arg count,ar**引數指標陣列
再者,我們不可能一次執行只收集1個引數,所以我們利用for
迴圈來持續讀取引數。
for
(int i=
0;i)
細心的你們可能已經注意到了,我特意跳過了第乙個引數的讀取。
這是因為,經歷我的親身試驗:
#include
using
namespace std;
intmain
(int argc,
char
* ar**)
return0;
}//編譯為wait.exe
編譯後,在cmd下cd程式目錄,加上引數執行:
c:\>wait hello world
args: wait hello world
c:\>
發現沒有,一開始的wait也被算入了引數列表。
如果第乙個引數,沒意義的引數被判斷一遍是否是某些功能需要的引數,那麼雖然不會引起bug,但是會造成記憶體的浪費。
所以我將其跳過。
//定義判斷引數是否是數字的函式
bool
ifallnum
(string arg)
return
true
;}
.//前面新加一下#include #include 和 using namespace std;
string arg=ar**[i];if
(arg==
"-remind"
||arg==
"-r")}
if(ifallnum
(arg)
)
if
(arg==
"-remind"
||arg==
"-r"
)//注意!
//先提示資訊
cout<<
"即將等待"
<
//後利用goto跳至sleep模組
goto ready_to_sleep;
//如果等待時間字串不是數字
//也交給ready_to_sleep模組處理
}ready_to_sleep:if(
ifallnum
(arg)
)else
編譯。
在命令列中進行除錯。
c:\>wait //注:沒有反應是為什麼呢?結合**思考思考
c:\>wait 1000
//注:此處等待1秒
c:\>wait 50s
引數無效 //也想一想,為什麼沒用?
c:\>wait -r
缺少等待時間
c:\>wait -remind 2000
即將等待
//注:此處等待2秒
c:\>
謝謝您**本工具的程式設計思想。
喜歡的話麻煩動動滑鼠留下乙個點贊吧!
在cmd命令列下建立爬蟲工程
建立爬蟲檔案 1.建立乙個scrapy工程 scrapy startproject 檔名 2.輸出所有可用模板資訊 scrapy genspider l 3.建立爬蟲檔案的模板 scrapy genspider t basic 檔名 baidu.com 4 測試爬蟲檔案 scrapy check 爬...
批處理的ftp命令列
最近在研究cc.net,根據需求要將生成的發布檔案放到ftp伺服器上,於是就研究了這方面的資料,供朋友們共享 1 ftp上傳的命令 格式 ftp s 配置檔案 ftp位址 如 ftp s c vc ftpconfig.txt 211.155.224.210 ftpconfig.txt的檔案內容是 u...
使用rar在命令列 cmd 下打包目錄
e recycler rar.exe a k r s m1 e wwwroot web web.rar e wwwroot web 引數說明 a 新增檔案到壓縮檔案中 k 鎖定壓縮檔案 s產生固體存檔,這樣可以增大壓縮比 r包括子目錄 m1 設定壓縮比 m0 儲存 新增到壓縮檔案時不壓縮檔案。m1 ...