文件导入导出

头文件:#include<stdio.h>
------------------------------
例子:

#include<iostream>
#include <stdio.h> 
using namespace std;
int main()
{
//freopen("debug\\in.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取 
//freopen("debug\\out.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中 
    //---------------------
int a[10];
int i;
for(i=0;i<10;i++)
cin>>a[i];
for(i=0;i<10;i++)
cout<<a[i]<<‘ ‘;       
    // ---------------------
//fclose(stdin);//关闭文件 
//fclose(stdout);//关闭文件 
return 0;
}

---------------------------------------

原文地址:http://apps.hi.baidu.com/share/detail/36930266


我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj
中。但由于调试往往不能一次成功,每次运行时,都要重新输入一遍测试数据,对于有大量输入数据的题目,输入数据需要花费大量时间。 
        使用freopen函数可以解决测试数据输入问题,避免重复输入,不失为一种简单而有效的解决方法。

函数名:freopen 
声明:FILE *freopen( const char *path, const char *mode, FILE *stream ); 
//////////////所在文件: stdio.h 
参数说明: 
path: 文件名,用于存储输入输出的自定义文件名。 
mode: 文件打开的模式。和fopen中的模式(如r-只读, w-写)相同。 
stream: 一个文件,通常使用标准流文件。 
返回值:成功,则返回一个path所指定文件的指针;失败,返回NULL。(一般可以不使用它的返回值) 
功能:实现重定向,把预定义的标准流文件定向到由path指定的文件中。标准流文件具体是指stdin、stdout和stderr。其中stdin是标准输入流,默认为键盘;stdout是标准输出流,默认为屏幕;stderr是标准错误流,一般把屏幕设为默认。

下面以在VC下调试“计算a+b”的程序举例。 
C语法: 
#include <stdio.h> 
int main() 

int a,b; 
freopen("debug\\in.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取 
freopen("debug\\out.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中
while(scanf("%d %d",&a,&b)!=EOF) 
printf("%d\n",a+b); 
fclose(stdin);//关闭文件 
fclose(stdout);//关闭文件 
return 0; 
}

C++语法 
#include <stdio.h> 
#include <iostream.h> 
int main() 

int a,b; 
freopen("debug\\in.txt","r",stdin); //输入重定向,输入数据将从in.txt文件中读取 
freopen("debug\\out.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中 
while(cin>>a>>b) 
cout<<a+b<<endl; // 注意使用endl 
fclose(stdin);//关闭文件 
fclose(stdout);//关闭文件 
return 0; 

 
     
freopen("debug\\in.txt","r",stdin)的作用就是把标准输入流stdin重定向到debug\\in.txt文件中,这
样在用scanf或是用cin输入时便不会从标准输入流读取数据,而是从in.txt文件中获取输入。只要把输入数据事先粘贴到in.txt,调试时就方
便多了。 
类似的,freopen("debug\\out.txt","w",stdout)的作用就是把stdout重定向到debug\\out.txt文件中,这样输出结果需要打开out.txt文件查看。

需要说明的是: 
 
      1.
在freopen("debug\\in.txt","r",stdin)中,将输入文件in.txt放在文件夹debug中,文件夹debug是在VC
中建立工程文件时自动生成的调试文件夹。如果改成freopen("in.txt","r",stdin),则in.txt文件将放在所建立的工程文件夹
下。in.txt文件也可以放在其他的文件夹下,所在路径写正确即可。 
        2. 可以不使用输出重定向,仍然在控制台查看输出。 
        3. 程序调试成功后,提交到oj时不要忘记把与重定向有关的语句删除.

另外补充一点: 关于dev-c下读文件一闪而过的问题.

#include <iostream>
using namespace std;

int main()
{
freopen("in.txt","r",stdin);
int n;
cin>>n;
cout<<n<<endl;

fclose(stdin);
system("pause");

return 0;
}

还有一个很重要的问题:如果你不想输入或输出到文件了,要恢复句柄,可以重新打开标准控制台设备文件,这个设备文件的名字是与操作系统相关:
DOS/Win:  freopen("CON", "r", stdin);
          freopen("CON", "w", stdout);
Linux:    freopen("/dev/console", "r", stdin);
http://bbs.fishc.com/forum.php?mod=viewthread&tid=3179

文件导入导出

时间: 2024-11-03 05:28:01

文件导入导出的相关文章

将csv格式的数据文件导入/导出数据库+添加新的字段

最近一直忙于实验室的事情,没有好好更新博客,在抓包的过程中,遇到了很多问题. 因为我常用Wireshark将抓包信息导出为csv文件,这里简单mark一下将csv文件导入/导出到数据库的2种方法: 一.简单,但是稍慢的方法,使用Navicat for MySQL,傻瓜式导入数据库: 流程如下: 安装完成并配置好连接后界面如下: 新建数据库 进入导入向导 选择导入类型: 然后选择文件作为数据源,这里是我之前抓好的包,300w+条抓包记录 这里直接采取默认设置 同样默认 自己设置了下表明,新建了表

关于Oracle字符集在dmp文件导入导出中的乱码影响

Oracle 在进行dmp备份和还原的时候,服务器端字符集和客户端字符集会对这个过程有较大影响,特别是数据表中存储了中文.存储过程中使用了中文编码(注释)的时候,如果没有处理好字符集的问题,在进行还原的时候就会遇到问题,我所遇到过的问题有一下几种: 1:导入后数据表中存储的中文字符成了乱码: 2:导入后存储过程中的中文字符成了乱码: 3:导入时,提示某些存储过程不存在,报IMP-00098 INTERNAL ERROR:impccr2错误: 其中问题1出现的原因是源数据库使用的字符集和你现在导入

以太坊钱包开发系列2 - 账号Keystore文件导入导出

以太坊去中心化网页钱包开发系列,将从零开始开发出一个可以实际使用的钱包,本系列文章是理论与实战相结合,一共有四篇:创建钱包账号.账号Keystore文件导入导出.展示钱包信息及发起签名交易.发送Token(代币),这是第二篇,主要介绍钱包账号导出与导入,将对Keystore文件的生成的原理进行介绍. 如何导入Geth创建的账号? 在上一篇文章,介绍了如何使用私钥及助记词来创建账号,如果是使用已有的私钥及助记词,这其实也是账号导入的过程. 有一些同学会问,我的账号是Geth生成的,如何导入到钱包呢

Laravel Excel 实现 Excel-CSV 文件导入导出功能

Laravel Excel 是一款基于 PHPExcel 开发的Laravel框架专用的 Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便. 它的 Github 地址是:https://github.com/Maatwebsite/Laravel-Excel 安装 我们就按照GIthub上的readme文件进行安装吧. composer require "maatwebsite/excel:~2.1.0" 在 config/app.php 中注册服务提供者到 provid

oracle 数据库dmp文件导入导出

一.数据库dmp文件导出 在pl/sql中tool下选择export tales,选中所有表格 ,并选择导出路径export即可. 二.数据库dmp文件导入 创建用户表空间: 创建用户:grant dba to aml; 执行导入脚本:(前提:windows服务器已经创建了连接到数据库的tns) Imp 用户名/密码@tns用户 file=***.dmp(dmp文件路径) full=y:

linux下mysql 文件导入导出

最近在做mysql的数据导入导出得到的一些经验,记录下. 1.首先要开通导入导出的功能,需要设置一个mysql的配置 可以在 my.conf 文件的最后增加配置项 secure-file-priv='' 用这个命令查到当前的设置 SHOW VARIABLES LIKE '%secure_file_priv%'; 如果为 NULL 表示禁止导入导出,如果指定了具体路径,则导入导出必须在这个路径下,如果为空字符串,则可以导出到任意路径(必须要有足够权限写任意的路径权限) 如果权限不够则可以默认到my

在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能(转)

1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出 . 该项目的GitHub地址是: https://github.com/Maatwebsite/Laravel-Excel . 本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出. 2.安装&配置 使用Composer安装依赖 首先在Laravel项目根目录

按照TYPE的文件导入导出功能

/** * 导入文件Action;*/private File excelFile;// 保存原始文件名private String excelFileFileName;// 保存原始文件名private String importResult; // 将Excel文件解析完毕后信息存放到这个User对象中private ExcelWorkSheet<TabUser> excelUserSheet; /*** 文件导入* * @return*/@Action(value = "imp

在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出 . 该项目的GitHub地址是: https://github.com/Maatwebsite/Laravel-Excel . 本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出. 2.安装&配置 使用Composer安装依赖 首先在Laravel项目根目录