C++中实现控制台中输入的内容保存到文件中

Xiaohui Huang, [email protected]
China University of Geosciences, Wuhan , 430074
School of Computer. Network Engineering


C++中实现将控制台中输入的内容保存在文件中


一、需求说明

最近在做一个项目,有一个功能要求是我们在windows的控制台上(快捷键win+R->cmd)输入一组字符串(该字符串可能包含空格或者换行符),直到我们输入一个结束标识符后,系统将我们之前在windows控制台上输入的内容保存在本地的文件中。


二、核心技术分析

要实现本功能主要要考以下两点:

(1)文件的相关操作:我们要实现将输入的内容保存在文件中,不可避免的会涉及文件的相关操作;

(2)如何实现在控制台上一直输入直至遇到结束标识符:大家都知道,当我们在控制台上输入时如果输出的字符串中含有空格,那么系统就会将其分成多个字符串(以空格为区分标准)。

查看网上的相关资料发现了如下一种方法:

int _input;
fstream _out;//文件输出流

while(cin>>_input)
{
	_out<<_input;	
	cout<<"输入的约束条件为:"<<_input<

但是测试之后发现该方法有一些弊端:(1)当我们输入带空格的字符串的时候,系统是将其按多行存储(以空格作为区分),(2)退出无限输入模式是在控制台上使用快捷键CTRL+C或者CTRL+Z。

显然不满足我们的要求,在上述代码上稍作修改即可达到题目要求,详细代码见第三节。


三、源代码展示

编译环境:Visual Studio 2012

#include "stdafx.h"

#include
#include
#include
#include

using namespace std;

class Test
{
	private:
		char _name[20];
		string _input;//约束条件
		fstream _out;//文件输出流
	public:
		Test();//构造函数 
		~Test();//析构函数
		void Condition();
		void show();
			 
};

Test::Test()
{
	strcpy_s(_name,"Default.txt");//默认新建文件名为Default.txt
	_input="";//默认是无输出条件
	cout<<"请输入创建文件名字(默认情况下为Default.txt):";
	cin>>_name;//用户可修改文件名 
	_out.open(_name,ios::out|ios::app);
}

Test::~Test()
{
	_out.close();
}

void Test::Condition()
{
	cout<<"请输入约束条件:"<Condition();
	system("pause");
}

Visual 2012下的文件目录:

C++中实现控制台中输入的内容保存到文件中_第1张图片


运行结果截图:

C++中实现控制台中输入的内容保存到文件中_第2张图片

查看项目文件夹,打开系统自动新建的文件my.txt

C++中实现控制台中输入的内容保存到文件中_第3张图片



That is all. Thank you.

你可能感兴趣的:(C++)