c語(yǔ)言實(shí)現(xiàn)整蠱朋友小程序(附源碼)
前言
感覺(jué)學(xué)了c語(yǔ)言后仍然一無(wú)是處???!想要整蠱一下朋友仍然不會(huì)???!
別慌,看完這篇文章,你就會(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>
話不多說(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)(只能輸入這兩句話)輸入我是豬 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的全稱是:Microsoft Visual Basic Script Edition。(微軟公司可視化BASIC腳本版)。
其語(yǔ)言類似Visual Basic(VB)。
1.我們用到的無(wú)限彈窗首先需要一個(gè)輸出到屏幕上的語(yǔ)句:
msgbox"xxx"
這條語(yǔ)句是輸出到屏幕的意思
2.其次是一個(gè)循環(huán),讓窗口無(wú)限循環(huán),這類似于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)然,如果一定要空格的話,也可以:
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++的線性表鏈?zhǔn)酱鎯?chǔ)設(shè)計(jì)與相關(guān)的API實(shí)現(xiàn)
這篇文章主要介紹了解析C++中的線性表鏈?zhǔn)酱鎯?chǔ)設(shè)計(jì)與相關(guān)的API實(shí)現(xiàn),文中的實(shí)例很好地體現(xiàn)了如何創(chuàng)建和遍歷鏈表等基本操作,需要的朋友可以參考下2016-03-03
C語(yǔ)言驅(qū)動(dòng)開(kāi)發(fā)之內(nèi)核文件的讀寫(xiě)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言驅(qū)動(dòng)開(kāi)發(fā)中內(nèi)核文件的讀寫(xiě)的系列函數(shù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-06-06
全面解析C++中的new,operator new與placement new
以下是C++中的new,operator new與placement new進(jìn)行了詳細(xì)的說(shuō)明介紹,需要的朋友可以過(guò)來(lái)參考下2013-09-09
C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹(shù)(AVL樹(shù))實(shí)現(xiàn)方法示例
這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹(shù)(AVL樹(shù))實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了C語(yǔ)言平衡二叉樹(shù)的相關(guān)定義與使用技巧,需要的朋友可以參考下2018-01-01
C++中的四個(gè)默認(rèn)成員函數(shù)與運(yùn)算符重載詳解
這篇文章主要給大家介紹了關(guān)于C++中四個(gè)默認(rèn)成員函數(shù)與運(yùn)算符重載的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
C語(yǔ)言中QString與QByteArray互相轉(zhuǎn)換的方法
本文主要介紹了C語(yǔ)言中QString與QByteArray互相轉(zhuǎn)換的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
C語(yǔ)言函數(shù)的遞歸和調(diào)用實(shí)例分析
一個(gè)函數(shù)在它的函數(shù)體內(nèi)調(diào)用它自身稱為遞歸調(diào)用。這種函數(shù)稱為遞歸函數(shù)。C語(yǔ)言允許函數(shù)的遞歸調(diào)用。在遞歸調(diào)用中,主調(diào)函數(shù)又是被調(diào)函數(shù)。執(zhí)行遞歸函數(shù)將反復(fù)調(diào)用其自身,每調(diào)用一次就進(jìn)入新的一層2013-07-07
C++實(shí)現(xiàn)學(xué)校運(yùn)動(dòng)會(huì)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)校運(yùn)動(dòng)會(huì)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
基于實(shí)現(xiàn)Qt秒表設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了基于實(shí)現(xiàn)Qt秒表設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08

