c語(yǔ)言實(shí)現(xiàn)整蠱朋友小程序(附源碼)
前言
感覺(jué)學(xué)了c語(yǔ)言后仍然一無(wú)是處???!想要整蠱一下朋友仍然不會(huì)??。?/p>
別慌,看完這篇文章,你就會(huì)了。
下面給大家分享兩個(gè)基礎(chǔ)的整蠱小程序
1.我是豬關(guān)機(jī)程序
2.無(wú)限彈窗程序
一、我是豬關(guān)機(jī)程序
效果:運(yùn)行程序后電腦在60s后關(guān)機(jī),如果輸入“我是豬”則取消關(guān)機(jī);如果輸入“你是豬”則立即關(guān)機(jī);輸入其他文字會(huì)提示重新輸入;若強(qiáng)行關(guān)閉程序電腦仍會(huì)關(guān)機(jī)。
本程序基于控制臺(tái),其功能是通過(guò)dos命令來(lái)實(shí)現(xiàn)。
那么就先講一下所用到的dos命令(shutdown -s -t 60
)
1.dos命令(強(qiáng)制關(guān)機(jī))
shutdown -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í)間。
2.源碼
注意的是,想使用cmd命令,需要調(diào)用庫(kù)函數(shù)<stdlib.h>
話(huà)不多說(shuō),直接源碼
#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{ //判斷輸入的是否為指定的語(yǔ)句 printf("如果不想關(guān)機(jī),請(qǐng)(只能輸入這兩句話(huà))輸入我是豬 or 你是豬 只給你一分鐘時(shí)間哦\n"); scanf("%s",&a); if(strcmp(a,b)==0){ //判斷輸入的語(yǔ)句 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)前文件哦。
二、無(wú)限彈窗
效果:運(yùn)行程序后會(huì)出現(xiàn)無(wú)限彈窗,無(wú)法關(guān)閉(其實(shí)通過(guò)任務(wù)管理器還是可以關(guān)閉的)。
本程序基于vbs,其功能是通過(guò)vbs語(yǔ)句來(lái)實(shí)現(xiàn)。
那么就先講一下所用到的vbs語(yǔ)句吧
1.vbs
VBS是基于Visual Basic的腳本語(yǔ)言。VBS的全稱(chēng)是:Microsoft Visual Basic Script Edition。(微軟公司可視化BASIC腳本版)。
其語(yǔ)言類(lèi)似Visual Basic(VB)。
1.我們用到的無(wú)限彈窗首先需要一個(gè)輸出到屏幕上的語(yǔ)句:
msgbox"xxx"
這條語(yǔ)句是輸出到屏幕的意思
2.其次是一個(gè)循環(huán),讓窗口無(wú)限循環(huán),這類(lèi)似于do while(1)
do
(其他語(yǔ)句)
loop
整體代碼如下(示例):
do msgbox"hello" loop
2.創(chuàng)建text.vbs,并打開(kāi)
vbs是基于文檔寫(xiě)的,所以此時(shí)應(yīng)該控制創(chuàng)建一個(gè).vbs文檔,并打開(kāi)它
fopen函數(shù)的各參數(shù)
r 打開(kāi)一個(gè)已有的文本文件,允許讀取文件。
w 打開(kāi)一個(gè)文本文件,允許寫(xiě)入文件。如果文件不存在,則會(huì)創(chuàng)建一個(gè)新文件。在這里,您的程序會(huì)從文件的開(kāi)頭寫(xiě)入內(nèi)容。
如果文件存在,則該會(huì)被截?cái)酁榱汩L(zhǎng)度,重新寫(xiě)入。
a 打開(kāi)一個(gè)文本文件,以追加模式寫(xiě)入文件。如果文件不存在,則會(huì)創(chuàng)建一個(gè)新文件。在這里,您的程序會(huì)在已有的文件內(nèi)容中追加內(nèi)容。
r+ 打開(kāi)一個(gè)文本文件,允許讀寫(xiě)文件。
w+ 打開(kāi)一個(gè)文本文件,允許讀寫(xiě)文件。如果文件已存在,則文件會(huì)被截?cái)酁榱汩L(zhǎng)度,如果文件不存在,則會(huì)創(chuàng)建一個(gè)新文件。
a+ 打開(kāi)一個(gè)文本文件,允許讀寫(xiě)文件。如果文件不存在,則會(huì)創(chuàng)建一個(gè)新文件。讀取會(huì)從文件的開(kāi)頭開(kāi)始,寫(xiě)入則只能是追加模式。
如果處理的是二進(jìn)制文件,則需使用下面的訪問(wèn)模式來(lái)取代上面的訪問(wè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+"); // 以寫(xiě)、創(chuàng)建形式打開(kāi)文件 if (!pf) return -1; //判斷是否可以打開(kāi) fputs(b, D:/text.vbs); // 向文件寫(xiě)入字符串 fputc(10,D:/text.vbs); fclose(D:/text.vbs); // 關(guān)閉文件 printf("準(zhǔn)備打開(kāi)文件"); system(D:/text.vbs); //cmd命令打開(kāi)文件
2.想要通過(guò)程序指定創(chuàng)建位置怎么辦?
很多人想要自己輸入一個(gè)地址 ,好說(shuō),我在這里給出的方法是用字符串以及連接函數(shù)strcat()
但注意地址中最好不要出現(xiàn)空格
當(dāng)然,如果一定要空格的話(huà),也可以:
1)最簡(jiǎn)單的方法就是給路徑名上加上“” 然后cd或執(zhí)行即可;
2)用縮寫(xiě)。比如c:\Program Files縮寫(xiě)為c:\Progra~1
在我的其他博文中說(shuō)明了這個(gè)問(wèn)題,想知道具體的可以去翻一下哦
char c[20],b[100],a[20]="""D:/",d[5]=".",e[10],f[10]=""""; /*注意:""代表一個(gè)";//代表一個(gè)/*/ printf("請(qǐng)輸入標(biāo)題"); scanf("%s",&c); printf("請(qǐng)輸入格式"); scanf("%s",&e); strcat(a,c); strcat(a,d); strcat(a,e); strcat(a,f); //將所有字符串連接起來(lái) #define file a //宏定義
3.源碼
為了可以減少以后麻煩,我將寫(xiě)入環(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("請(qǐng)輸入標(biāo)題"); scanf("%s",&c); printf("請(qǐng)輸入格式"); scanf("%s",&e); strcat(a,c); strcat(a,d); strcat(a,e); strcat(a,f); #define file a FILE *pf = fopen(file, "w+"); // 以寫(xiě)、創(chuàng)建形式打開(kāi)文件 if (!pf) return -1; //判斷是否可以打開(kāi) printf("請(qǐng)輸入內(nèi)容 (如果停止輸入請(qǐng)按 “.”)"); do{ scanf("%s",&b); fputs(b, pf); // 向文件寫(xiě)入字符串 fputc(10,pf); }while(b[0]!='.'); fclose(pf); // 關(guān)閉文件 printf("準(zhǔn)備打開(kāi)文件"); system(file); printf("ok"); return 0; }
總結(jié)
以上就是今天要講的內(nèi)容,你學(xué)廢了嘛?!
當(dāng)然,整蠱要適當(dāng),本文僅用于學(xué)習(xí),謝謝。
到此這篇關(guān)于c語(yǔ)言實(shí)現(xiàn)整蠱朋友小程序的文章就介紹到這了,更多相關(guān)c語(yǔ)言整蠱小程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++深入分析數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形態(tài)
使用編程語(yǔ)言進(jìn)行編程時(shí),需要用到各種變量來(lái)存儲(chǔ)各種信息。變量保留的是它所存儲(chǔ)的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個(gè)變量時(shí),就會(huì)在內(nèi)存中保留一些空間。您可能需要存儲(chǔ)各種數(shù)據(jù)類(lèi)型的信息,操作系統(tǒng)會(huì)根據(jù)變量的數(shù)據(jù)類(lèi)型,來(lái)分配內(nèi)存和決定在保留內(nèi)存中存儲(chǔ)什么2023-01-01C語(yǔ)言動(dòng)態(tài)數(shù)組的使用實(shí)現(xiàn)代碼
這篇文章主要介紹了C語(yǔ)言動(dòng)態(tài)數(shù)組的使用實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-01-01C語(yǔ)言rewind與fseek函數(shù)之隨機(jī)讀寫(xiě)文件的用法詳解
這篇文章主要介紹了C語(yǔ)言rewind與fseek函數(shù)之隨機(jī)讀寫(xiě)文件的用法詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09C語(yǔ)言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比
這篇文章主要介紹了C語(yǔ)言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比,分別用于讀取組格式函數(shù)和讀取密碼格式,需要的朋友可以參考下2015-08-08C/C++利用棧和隊(duì)列實(shí)現(xiàn)停車(chē)場(chǎng)管理系統(tǒng)
數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計(jì)一般都不是很好理解,今天小編為大家總結(jié)了一下c和c++版本的常見(jiàn)棧和隊(duì)列的的停車(chē)場(chǎng)管理程序,需要的小伙伴可以參考一下2022-06-06c語(yǔ)言實(shí)現(xiàn)通訊錄管理系統(tǒng)詳細(xì)實(shí)例
這篇文章主要給大家介紹了關(guān)于c語(yǔ)言實(shí)現(xiàn)通訊錄管理系統(tǒng)的相關(guān)資料,通訊錄管理系統(tǒng)是一種常見(jiàn)的應(yīng)用程序,可以用來(lái)管理聯(lián)系人的信息,包括姓名、電話(huà)號(hào)碼、地址等,需要的朋友可以參考下2023-07-07