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++ 使用文件更好的输入输出 -> 正文阅读

[C++知识库]C++ 使用文件更好的输入输出

//文中均以DEVC++为例,不同编译器实现上有不同

01.效果:

? ? ? ? 在源文件同目录中(存放源文件的文件夹中),新建文件名为“cin”,”cout“(文件名可根据自己喜好修改”cin“,”cout“的文件名参考某些比赛的要求)的两个txt文件,打开DEV,ctrl+O打开 源文件、“cin”、“cout“所在的文件夹,将这三个文件在编译器中打开。在”cin“中输入希望在源文件中的输入,ctrl+tab切到源文件,F11编译运行源文件,黑窗弹出,不再期待键入,直接显示程序运行完毕(如果黑窗短时间内无响应,没有显示程序运行完毕,说明程序存在问题,从某种层面上实现了更优的对程序的检查),按下回车后,DEV提示“’cout文件地址‘已经改变,重新从硬盘读取?”,再次按下回车键确认,ctrl+tab切换到”cout“文件,程序此次的输出覆盖掉了"cout"文件先前的内容,即”cout“文件此时只含有此次程序运行的输出。

02.优点:

? ? ? ? 在机房上机课时发现黑窗弹出后不能复制粘贴(然而在自己的笔记本上可以),导致在检查样例的输入输出时需要手动输入,如果数据量大,会很浪费时间,使用这种方法就可以直接复制粘贴到”cin.txt“文件中。

? ? ? ? 对一个样例的输入进行测试检查时,不用每次修改程序后重新输入,因为”cin“文件只要不修改就不会变,修改程序后编译运行然后看”cout“文件中的内容与期待的输出是否一致即可。

? ? ? ? 如果是在线访问(询问后立刻应答),输入和输出会混杂在一起,在检查输入输出是否正确时会很麻烦,使用这种方法将输入输出分开在了两个文件中,避免了这种麻烦。

? ? ? ? 如果输出的是图形,在黑窗中很难检查空格和列位置,而在txt文件中可以显示行列位置,方便检查。

? ? ? ? 一些比赛要求以文件的方式输入输出,就是以本文的原理,稍加改动即可,本文中的处理是针对正常的输入输出,提交给OJ时无需特殊处理。

03.实现

????????首先在“工具→编译选项→编译器”中,勾选“编译时加入一下命令:”,再在下方区域输入“-Dcincout”(cincout是自己决定的命令名称,可凭喜好随意修改)。在源文件的主函数开头加入以下代码。之后便可以实现”01.效果“中的操作了。

int main(void)
{
    //关流 加快输入输出速度 如果不同时使用scanf和cin(printf和cout)不用担心任何问题
    //如果需要同时使用scanf和cin(printf和cout)注释掉这行就可以了 速度会慢一点
    std::ios::sync_with_stdio(false);

//判断编译时是否有”cincout“指令 如果有 执行这个语句块 如果没有 忽略这个语句块
//因为有这个判断 在本地跑的时候可以文件输入输出
//而提交给OJ时 因为OJ没有”cincout“这条自定义的指令
//不会以文件的方式进行输入输出 而以正常的方式进行
//如果比赛需要以文件输入输出 注释掉"#ifdef cincout""#endif" 即可
//这样就一定会以文件输入输出 而与是否有自定义指令”cincout“无关
#ifdef cincout    
	freopen("cin.txt","r",stdin);//只对”cin.txt“文件进行读取
	freopen("cout.txt","w",stdout);//只对”cin.txt“文件进行重写
#endif

   //主函数内容书写区

	return 0;
}

FAQ:

01.

Q:有黑窗,黑窗没有显示程序运行完毕。

A:程序存在bug没法跑,或者”cin“文件中的输入有问题。

02.

Q:程序运行完后,”cout"里是空的。

A:检查“cin”,"cout“文件是否与源文件在同一目录下(在同一个文件夹中)。检查文件名是否有误,文件名末尾无需加上”.txt“,不然会变成“cin.txt.txt”。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-07 11:51:13  更:2021-12-07 11:52:50 
 
开发: 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年11日历 -2024/11/24 10:38:58-

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