(本程序基于控制臺其功能是通過dos命令來實(shí)現(xiàn))
感覺學(xué)了c語言后仍然一無是處?!!想要整蠱一下朋友仍然不會(huì)?!!
別慌,看完這篇文章,你就會(huì)了。
下面給大家分享兩個(gè)基礎(chǔ)的整蠱小程序
1.我是豬關(guān)機(jī)程序
2.無限彈窗程序
效果:運(yùn)行程序后電腦在60s后關(guān)機(jī),如果輸入“我是豬”則取消關(guān)機(jī);如果輸入“你是豬”則立即關(guān)機(jī);輸入其他文字會(huì)提示重新輸入;若強(qiáng)行關(guān)閉程序電腦仍會(huì)關(guān)機(jī)。
本程序基于控制臺,其功能是通過dos命令來實(shí)現(xiàn)。
那么就先講一下所用到的dos命令(shutdown -s -t 60)
1shutdown -s -t 60 -c -f
各參數(shù)的意思:
-s 動(dòng)作為關(guān)機(jī)
-r 為重啟
-a 為取消關(guān)機(jī)
-t 60 延遲60秒關(guān)機(jī)
-c “想要顯示的注釋”
-f 關(guān)機(jī)時(shí)強(qiáng)制關(guān)閉所有程序而不顯示任何警告。
標(biāo)準(zhǔn)格式:(shutdown -s -t xx)
t xx是關(guān)機(jī)延時(shí)時(shí)間 /秒;xx可以是00,直接關(guān)機(jī)。
注意:可能輸入命令后,windows提示n分鐘后關(guān)機(jī),但關(guān)機(jī)時(shí)間仍然是設(shè)定的時(shí)間。
注意的是,想使用cmd命令,需要調(diào)用庫函數(shù)<stdlib.h>
話不多說,直接源碼
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char b[10]='我是豬',c[10]='你是豬',a[10];
system('shutdown -s -t 60'); //命令關(guān)機(jī)
do{ //判斷輸入的是否為指定的語句
printf('如果不想關(guān)機(jī),請(只能輸入這兩句話)輸入我是豬 or 你是豬 只給你一分鐘時(shí)間哦\n');
scanf('%s',&a);
if(strcmp(a,b)==0){ //判斷輸入的語句
system('shutdown -a'); //取消關(guān)機(jī)命令
system('cls'); //清屏函數(shù)
printf('哈哈哈,okok\n');
system('pause'); //暫停函數(shù)
}
if(strcmp(a,c)==0){
system('pause');
printf('我懷疑你在罵我,那我只好給你關(guān)機(jī)了\n');
system('shutdown -s -t 5'); //5s后關(guān)機(jī)
printf('哈哈哈,拜拜\n');
system('pause');
}
}while(strcmp(a,b)!=0&&strcmp(a,c)!=0);
return 0;
}
整蠱朋友前一定提醒他保存當(dāng)前文件哦。
效果:運(yùn)行程序后會(huì)出現(xiàn)無限彈窗,無法關(guān)閉(其實(shí)通過任務(wù)管理器還是可以關(guān)閉的)。
本程序基于vbs,其功能是通過vbs語句來實(shí)現(xiàn)。
那么就先講一下所用到的vbs語句吧
VBS是基于Visual Basic的腳本語言。VBS的全稱是:Microsoft Visual Basic Script Edition。(微軟公司可視化BASIC腳本版)。
其語言類似Visual Basic(VB)。
1.我們用到的無限彈窗首先需要一個(gè)輸出到屏幕上的語句:
msgbox'xxx'
這條語句是輸出到屏幕的意思
2.其次是一個(gè)循環(huán),讓窗口無限循環(huán),這類似于do while(1)
do
(其他語句)
loop
整體代碼如下(示例):
do
msgbox'hello'
loop
vbs是基于文檔寫的,所以此時(shí)應(yīng)該控制創(chuàng)建一個(gè).vbs文檔,并打開它
fopen函數(shù)的各參數(shù)
r 打開一個(gè)已有的文本文件,允許讀取文件。
w 打開一個(gè)文本文件,允許寫入文件。如果文件不存在,則會(huì)創(chuàng)建一個(gè)新文件。在這里,您的程序會(huì)從文件的開頭寫入內(nèi)容。
如果文件存在,則該會(huì)被截?cái)酁榱汩L度,重新寫入。
a 打開一個(gè)文本文件,以追加模式寫入文件。如果文件不存在,則會(huì)創(chuàng)建一個(gè)新文件。在這里,您的程序會(huì)在已有的文件內(nèi)容中追加內(nèi)容。
r+ 打開一個(gè)文本文件,允許讀寫文件。
w+ 打開一個(gè)文本文件,允許讀寫文件。如果文件已存在,則文件會(huì)被截?cái)酁榱汩L度,如果文件不存在,則會(huì)創(chuàng)建一個(gè)新文件。
a+ 打開一個(gè)文本文件,允許讀寫文件。如果文件不存在,則會(huì)創(chuàng)建一個(gè)新文件。讀取會(huì)從文件的開頭開始,寫入則只能是追加模式。
如果處理的是二進(jìn)制文件,則需使用下面的訪問模式來取代上面的訪問模式:“rb”, “wb”, “ab”, “rb+”, “r+b”, “wb+”, “w+b”, “ab+”, “a+b”
'b'表示二進(jìn)制
關(guān)閉文件可以使用 fclose( ) 函數(shù)
FILE *pf = fopen(D:/text.vbs, 'w+'); // 以寫、創(chuàng)建形式打開文件
if (!pf)
return -1; //判斷是否可以打開
fputs(b, D:/text.vbs); // 向文件寫入字符串
fputc(10,D:/text.vbs);
fclose(D:/text.vbs); // 關(guān)閉文件
printf('準(zhǔn)備打開文件');
system(D:/text.vbs); //cmd命令打開文件
很多人想要自己輸入一個(gè)地址 ,好說,我在這里給出的方法是用字符串以及連接函數(shù)strcat()
但注意地址中最好不要出現(xiàn)空格
當(dāng)然,如果一定要空格的話,也可以:
1)最簡單的方法就是給路徑名上加上“” 然后cd或執(zhí)行即可;
2)用縮寫。比如c:\Program Files縮寫為c:\Progra~1
在我的其他博文中說明了這個(gè)問題,想知道具體的可以去翻一下哦
char c[20],b[100],a[20]='''D:/',d[5]='.',e[10],f[10]='''';
/*注意:''代表一個(gè)';//代表一個(gè)/*/
printf('請輸入標(biāo)題');
scanf('%s',&c);
printf('請輸入格式');
scanf('%s',&e);
strcat(a,c);
strcat(a,d);
strcat(a,e);
strcat(a,f); //將所有字符串連接起來
#define file a //宏定義
為了可以減少以后麻煩,我將寫入環(huán)節(jié)改為了循環(huán)(即可以隨意輸入內(nèi)容,以“ . ” 作為結(jié)束標(biāo)志);
同時(shí)后綴名也進(jìn)行了隨意輸入,不局限于.vbs。增強(qiáng)了程序的實(shí)用性。
上源碼
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char c[20],b[100],a[20]='''D:/',d[5]='.',e[10],f[10]='''';
printf('請輸入標(biāo)題');
scanf('%s',&c);
printf('請輸入格式');
scanf('%s',&e);
strcat(a,c);
strcat(a,d);
strcat(a,e);
strcat(a,f);
#define file a
FILE *pf = fopen(file, 'w+'); // 以寫、創(chuàng)建形式打開文件
if (!pf)
return -1; //判斷是否可以打開
printf('請輸入內(nèi)容 (如果停止輸入請按 “.”)');
do{
scanf('%s',&b);
fputs(b, pf); // 向文件寫入字符串
fputc(10,pf);
}while(b[0]!='.');
fclose(pf); // 關(guān)閉文件
printf('準(zhǔn)備打開文件');
system(file);
printf('ok');
return 0;
}
今天整蠱朋友小程序的文章就介紹到這了,你學(xué)廢了嘛?!
當(dāng)然,整蠱要適當(dāng),本文僅用于學(xué)習(xí),謝謝。