c語言實(shí)現(xiàn)整蠱朋友小程序(附源碼)
前言
感覺學(xué)了c語言后仍然一無是處?!!想要整蠱一下朋友仍然不會(huì)???!
別慌,看完這篇文章,你就會(huì)了。
下面給大家分享兩個(gè)基礎(chǔ)的整蠱小程序
1.我是豬關(guān)機(jī)程序
2.無限彈窗程序
一、我是豬關(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),其功能是通過dos命令來實(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)用庫函數(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ī),請(qǐng)(只能輸入這兩句話)輸入我是豬 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語句吧
1.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
2.創(chuàng)建text.vbs,并打開
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(zhǎng)度,重新寫入。
a 打開一個(gè)文本文件,以追加模式寫入文件。如果文件不存在,則會(huì)創(chuàng)建一個(gè)新文件。在這里,您的程序會(huì)在已有的文件內(nèi)容中追加內(nèi)容。
r+ 打開一個(gè)文本文件,允許讀寫文件。
w+ 打開一個(gè)文本文件,允許讀寫文件。如果文件已存在,則文件會(huì)被截?cái)酁榱汩L(zhǎng)度,如果文件不存在,則會(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命令打開文件
2.想要通過程序指定創(chuàng)建位置怎么辦?
很多人想要自己輸入一個(gè)地址 ,好說,我在這里給出的方法是用字符串以及連接函數(shù)strcat()
但注意地址中最好不要出現(xiàn)空格
當(dāng)然,如果一定要空格的話,也可以:
1)最簡(jiǎn)單的方法就是給路徑名上加上“” 然后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("請(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 //宏定義
3.源碼
為了可以減少以后麻煩,我將寫入環(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+"); // 以寫、創(chuàng)建形式打開文件 if (!pf) return -1; //判斷是否可以打開 printf("請(qǐng)輸入內(nèi)容 (如果停止輸入請(qǐng)按 “.”)"); 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; }
總結(jié)
以上就是今天要講的內(nèi)容,你學(xué)廢了嘛?!
當(dāng)然,整蠱要適當(dāng),本文僅用于學(xué)習(xí),謝謝。
到此這篇關(guān)于c語言實(shí)現(xiàn)整蠱朋友小程序的文章就介紹到這了,更多相關(guān)c語言整蠱小程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++深入分析數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形態(tài)
使用編程語言進(jìn)行編程時(shí),需要用到各種變量來存儲(chǔ)各種信息。變量保留的是它所存儲(chǔ)的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個(gè)變量時(shí),就會(huì)在內(nèi)存中保留一些空間。您可能需要存儲(chǔ)各種數(shù)據(jù)類型的信息,操作系統(tǒng)會(huì)根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲(chǔ)什么2023-01-01C語言動(dòng)態(tài)數(shù)組的使用實(shí)現(xiàn)代碼
這篇文章主要介紹了C語言動(dòng)態(tài)數(shù)組的使用實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-01-01C語言rewind與fseek函數(shù)之隨機(jī)讀寫文件的用法詳解
這篇文章主要介紹了C語言rewind與fseek函數(shù)之隨機(jī)讀寫文件的用法詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09C語言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比
這篇文章主要介紹了C語言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比,分別用于讀取組格式函數(shù)和讀取密碼格式,需要的朋友可以參考下2015-08-08C/C++利用棧和隊(duì)列實(shí)現(xiàn)停車場(chǎng)管理系統(tǒng)
數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計(jì)一般都不是很好理解,今天小編為大家總結(jié)了一下c和c++版本的常見棧和隊(duì)列的的停車場(chǎng)管理程序,需要的小伙伴可以參考一下2022-06-06c語言實(shí)現(xiàn)通訊錄管理系統(tǒng)詳細(xì)實(shí)例
這篇文章主要給大家介紹了關(guān)于c語言實(shí)現(xiàn)通訊錄管理系統(tǒng)的相關(guān)資料,通訊錄管理系統(tǒng)是一種常見的應(yīng)用程序,可以用來管理聯(lián)系人的信息,包括姓名、電話號(hào)碼、地址等,需要的朋友可以參考下2023-07-07