怎么把文件打开方式用c++打开一个文件,并把里面的内容作为我要输入的数据呢?

C++ 如何将一个文件里的数据写入到另一个文件里?_百度知道
C++ 如何将一个文件里的数据写入到另一个文件里?
打个比方(文件内容如下)
如何将这个文件的内容写入到另外一个文件,并且在执行操作时将数据输出到显示屏上。
说下思路...
我有更好的答案
C++ 实现文件复制的方法为:文件操作需要用到头函数fstream用ifstream打开源文件,备读用ofstream打开目标文件,备写循环读取源文件用getline()函数,逐行读取源文件到字符串中用cout输出字符串到标准输出(屏幕)把读到的字符输出到目标文件若读文件结束,结束循环关闭源文件和目标文件参考代码:#include&iostream&&//输入输出流#include&fstream&&//文件流头文件using&namespace&int&main(){ ifstream&in(&src.txt&);&//源文件读 ofstream&out(&&obj.txt&&);&//目标文件写 if&(!in){
cout&&&&open&source&file&error!&&&
return&-1; } while(&!in.eof()&)&//文件未结束,循环 {
char&str[1024];
in.getline(str,sizeof(str),'\n');&//读一行
cout&&&&str&&&&&//输出到屏幕
out&&&str&&&&//输出到文件 } in.close(); out.close(); return&0;}
采纳率:75%
来自团队:
#include &IOSTREAM.H&#include &FSTREAM.H&class information{public:
char name[10]; };void main(){ information a[2]; for(int i=0;i&2;i++) {
cout&&&姓名:&&&
cin&&a[i].
cout&&&学号:&&&
cin&&a[i].
cout&&&成绩:&&&
cin&&a[i]. }
//文件写入
finout.open(&stu_info.txt&,ios::out|ios::app);
finout&&&姓名\t&&&&学号\t&&&&成绩\t&&&
for(i=0;i&2;i++) {
finout&&a[i].name&&&\t&&&a[i].number&&&\t&&&a[i].score&&
finout.close();
// 文件读取
fstream read1; read1.open(&stu_info.txt&,ios::in); while(!read1.eof()) {
c=read1.get();
cout&&(char)c; } read1.close();}
本回答被提问者采纳
#include &iostream&#include &fstream&int main(){ ofstream fout(&新文件.txt&); ifstream fin(&旧文件.txt&);
while((ch = fin.get()) && (ch != EOF)) {
fout && } return 0;}
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
// fstream.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include&fstream&void main(){
char a[] = "John Doe"; fout.open("output.txt"); num = 20; fout&&"here is a number:"&&num&&"\n"; fout&&"Now here..."; fout&& fout.close();}注意:#include"stdafx.h"要包含在任何头文件前面在使用ofstream类之前,要包含&fstream&; 并且要加上需要继续研究;fout是将内存中的流写入到硬盘中,而fin则相反;fout.open("output.txt");创建并打开了一个文件;fout&&......&&则开始创建流;fout&&flush;将流写入硬盘;fout.close;关闭文件;另附另一个实例:/********************************************************** Description:iostream 与 fstream 类* Author:charley* DateTime: 22:00* Compile Environment:win7+vs2008***********************************************************/&#include &iostream& #include &fstream& #include &string& &&int main_test3() { &&&&//声明一个 ofstream类型的对象&&&&ofstream outfile( "out_file.txt" ); &&&&//声明一个 ifstream类型的对象&&&&ifstream infile( "in_file.txt" ); &&&&&// 如文件不能打开值为 false &&&&if ( ! infile ) { &&&&&&&&cerr && "error: unable to open input file!\n"; &&&&&&&&return -1; &&&&} &&&&if ( ! outfile ) { &&&&&&&&cerr && "error: unable to open output file!\n"; &&&&&&&&return -2; &&&&} &&&& &&&&while ( infile && word )&&& //从infile文件读取内容,类似等待用户的控制台出入&&&&&&&&outfile && word && ' '; //向内容文件outfile写入,类似往控制台输出内容&&&&return 0; }从一个名为 in_file.txt 的文本文件中读取单词,然后把每个词写到一个名为out_file.txt的输出文件中 并且每个词之间用空格分开return -1;return -2;可以在程序退出的时候知道程序是发生了什么错误退出的;word相对于一个缓冲器&&&&while ( infile && word )&&& //从infile文件读取内容,类似等待用户的控制台出入&&&&&&&&outfile && word && ' '; //向内容文件outfile写入,类似往控制台输出内容一直到infile中没有单词之后,while才停止;最近在看C++,学到了标准库这一章,看到cin的时候,我们经常看到很多的代码中会有这么一段while(cin&&x){ ......}。这里我们最关注的问题是while括号里面cin&&x他每次输入的时候返回的是什么值呢。所以我们也就会问cin的返回值是什么。我也看到很多像我这样的新手问这样的问题,下面说下我个人的见解,如有不当之处,还请指正!& & 其实我倒觉得我们这个问题问错了,我们不应该问cin返回值是什么,我觉得我们应该关注"&&"输入操作符,其实是它到底返回了什么。因为cin是标准输入istream的一个对象,一个对象能返回什么吗?对象有返回值吗?好像没有吧!在C++primer里面讲到过,cin&&x&&y。有这么一行代码,我们讨论下"&&"这个输入操作符,这个操作符接收一个istream对象作为其做操作数,接收一个对象作为其右操作数。"&&"操作符返回其左操作数作为结果,这样也就可以解释为什么上面可以将两个输入操作合并了。因为cin&&x返回cin对象,接着又可以进行cin&&y。所以我们就可以顺利进行输入了。所以我们再来看上面的那个while循环,里面的cin&&x,返回的是cin对象(注意是输入操作符“&&”返回),所以返回的也就可以认为是流本身了。我们再来看下他什么时候退出循环。因为我们已经知道了括号里面的返回值了,所以我们看看它什么时候退出循环。& & 输入(cin)缓冲是行缓冲。当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。每当按下回车键后,cin 就会检测输入缓冲区中是否有了可读的数据,这种情况下cin对键盘上是否有作为流结束标志CTRL+Z或者CTRL+D,其检查的方式有两种:阻塞式以及非阻塞式。这里借用一点网上搜到的资料,& & 阻塞式检查方式指的是只有在回车键按下之后才对此前是否有 Ctrl+Z 组合键按下进行检查,非阻塞式样指的是按下 Ctrl+D 之后立即响应的方式。如果在按 Ctrl+D 之前已经从键盘输入了字符,则 Ctrl+D的作用就相当于回车,即把这些字符送到输入缓冲区供读取使用,此时Ctrl+D不再起流结束符的作用。如果按 Ctrl+D 之前没有任何键盘输入,则 Ctrl+D 就是流结束的信号。& & 阻塞式的方式有一个特点:只有按下回车之后才有可能检测在此之前是否有Ctrl+Z按下。还有一个特点, & Windows下是不用CTRL+D的,如果在你的程序中使用CTRL+D的话,如果你还有要输入的数据的话,会直接挂掉的,不能再输入了。Windows下是使用CTRL+Z的。 在你输入CTRL+Z后,括号里面的数据变为了。来看一段程序:(vc6.0上运行)#include &iostream&int main(void){& &int &i;& cout&&(cin&&i)&&& return 0;&}当你按下CTRL+Z后,按下两次回车,就可以得到结果.所以上面的while会退出循环。但是当你在你的程序中输入数据的时候,你要结束输入,你输完数据直接回车,再按下CTRL+Z,再按下回车就可以结束了。因为前面说过如果输入缓冲区中有可读的数据则不会检测 Ctrl+Z(因为有要读的数据,还不能认为到了流的末尾)。还有一点需要知道,Ctrl+Z产生的不是一个普通的ASCII码值,也就是说它产生的不是一个字符,所以不会跟其它从键盘上输入的字符一样能够存放在输入缓冲区。差不多就这么多了,个人看法,有不当之处还请大家指点!谢谢!对于while(cin&&word)cout&&word&&这样的代码,其实是一个死循环,可以加入读取结束条件(默认条件是读到eof),来跳出循环///////////////////////////////////////////////////////////////////那么infile&&word 到底做了些什么呢?infile是一个ifstream类:关于这个类以及ofstream的详解请看:cin&&变量;其实这个进行的事情主要是cin整个流赋给变量;所以infile&&word进行的事情就是将infile中的流赋给word;但是infile这个流是什么?是文件中的所有字符吗?应该这么理解:infile是一个流,并且这个流来自于文件in_file中所有的字符;out.write(str1,strlen(str1));//把字符串str1全部写到yyy.yyy中原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/database/460/.shtml其中cerr 和cout之间的区别:之前一直在用,但就是没在意两者到底有啥却别,今天又想到这个问题,总结下吧(以下的内容均是本人从网上查阅资料看来整理的,暂时还没有查阅官方资料,不保证准确,欢迎讨论)其实大家平常常会用的主要有三个:cout、cerr、clog,首先简单介绍下三者。这三者在C++中都是标准IO库中提供的输出工具(至于有关的重载问题在此不讨论):cout:写到标准输出的ostream对象;cerr:输出到标准错误的ostream对象,常用于程序错误信息;clog:也是输出标准错误流(这点儿和cerr是一样的),貌似平时很少用到这个啊;具体在输出的时候,三者是有区别的:1、cout经过缓冲后输出,默认情况下是显示器。这是一个被缓冲的输出,是标准输出,并且可以重新定向(关于重新定向的意思可以参考下面的例子);2、cerr不经过缓冲而直接输出,一般用于迅速输出出错信息,是标准错误,默认情况下被关联到标准输出流,但它不被缓冲,也就说错误消息可以直接发送到显示器,而无需等到缓冲区或者新的换行符时,才被显示。一般情况下不被重定向(重定向这点儿好像有争论,有些人说和系统有关,本人还不太明白)对于为什么有cerr和clog  比如,你的程序遇到调用栈用完了的威胁(无限,没有出口的递归)。  你说,你到什么地方借内存,存放你的错误信息?  所以有了cerr。其目的,就是在你最需要它的紧急情况下,还能得到输出功能的支持。  缓冲区的目的,就是减少刷屏的次数——比如,你的程序输出圣经中的一篇文章。不带缓冲的话,就会每写一个字母,就输出一个字母,然后刷屏。有了缓冲,你将看到若干句子“同时”就出现在了屏幕上(由内存翻新到显存,然后刷新屏幕)。附:#include &iostream&int main(){cout && "cout" &&cerr && "cerr" &&return 0;}运行此程序之后,我们在命令行执行如下命令:假设编译运行后的可执行文件名为cerr.exe,其目录为E:\cpro\cerr\Debug\cerr.exe在命令行下,切换到这个目录下,执行命令:cerr&test.log命令行输出如下:E:\cpro\cerr\Debug&cerr&&test2.logCerr(这是在命令行下输出的)查看test2.log文件,发现里面只有Cout一行。可能这个就是所谓的重定向输出。从这里可以看出:cout是在终端显示器输出,cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插入一个endl,不论缓冲区是否漫了,都立即输出流中所有数据,然后插入一个换行符.&cerr流对象是标准错误流,指定为和显示器关联,和cout作用差不多,有点不同就是cout&通常是传到显示器输出,但可以被重定向输出到文件,而cerr流中的信息只能在显示器输出.&clog流也是标准错误流,作用和cerr一样,区别在于cerr不经过缓冲区,直接向显示器输出信息,而clog中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出.今天看C++Primer(第四版)的时候又看到了这几个,摘抄一段话,供大家参考:"标准库定义了4个IO对象,处理输入时使用命名为cin的istream类型对象,这个对象也成为标准输入。处理输出时使用命名为cout的ostream类型对象,这个对象也称为标准输出。标准库还定义了另外两个ostream对象,分别命名为cerr和clog。cerr对象又叫标准错误,通常用来输出警告和错误信息给程序的使用者,而clog对象用于产生程序执行的一般信息。一般情况下,系统将这些对象与执行窗口联系起来,这样,当我们从cin读入时,数据从执行程序的窗口读入,当写到cout、cerr、clog时,输出写至同一窗口。运行程序时,大部分操作系统都提供了重定向输入或者输出流的方法。利用重定向可以将这些流与所选择的文件联系起来"&
阅读(5680)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'关于C++的文件操作:将数据写入一个txt文件中',
blogAbstract:'先把代码贴上:// fstream.cpp : 定义控制台应用程序的入口点。//#include \"stdafx.h\"#include&fstream&void main(){\\\tchar a[] = \"John Doe\";\tfout.open(\"output.txt\");\tnum = 20;\tfout&&\"here is a number:\"&&num&&\"\\n\";\tfout&&\"Now here...\";\tfout&&',
blogTag:'c++文件处理',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:9,
publishTime:3,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}C语言中怎么打开一个文件然后写入一些数据,然后再把数据取出来,最好有代码。_百度知道
C语言中怎么打开一个文件然后写入一些数据,然后再把数据取出来,最好有代码。
我有更好的答案
有两种方法:一是标准的输出输入方式比如新建一个磁盘文件c:\a.txt,将键盘输入的一字符串写到文件中:FILE *char str[50]; ft=fopen(&c:\\a.txt&,&w+&);printf(&输入一个字符串:&);scanf(&%s&,str);fputs(str,ft);fclose(ft);//重新打开这个文件并读出字符串,显示在屏幕上ft=fopen(&c:\\a.txt&,&rt&);fgets(str,50,ft);fclose(ft);printf(&%s&,str); 二是低级输入输出方式仍如上例:char str[50];printf(&输入一个字符串:&);scanf(&%s&,str);hd=open(&c:\\a.txt&,O_CREAT|O_TEXT|O_WRONLY);write(hd,str,strlen(str));close(hd);//重新打开这个文件并读出字符串,显示在屏幕上hd=open(&c:\\a.txt&,O_TEXT|O_RDONLY);read(hd,str,50);close(hd);printf(&%s&,str);
采纳率:64%
# include&stdio.h&# include&stdlib.h&int main(){char word[1000];FILE *if((fp=fopen("words.txt","r+"))==NULL){fprintf(stdout,"Can't open \"words\" file\n");exit(1);}while(fgets(word,100,stdin)!=NULL&&(word[0]!='\n')){fputs(word,fp);}while(fscanf(fp,"%s",word)==1){puts(word);}return 0;}words.txt是此工程文件夹下的文本文件,必须已存在,否则报错。运行后,输入字符串,保存到字符数组word中,然后由fputs函数写入文件。可连续输入。若只输入回车,则表示输入完毕。。。
为您推荐:
其他类似问题
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。怎么用c++写一个程序,std::cin用户输入一个txt文件名,程序用ifstream读取并打出来。_百度知道
怎么用c++写一个程序,std::cin用户输入一个txt文件名,程序用ifstream读取并打出来。
我有更好的答案
参考程序【编译环境 Dev C++】#include&&iostream&#include&&fstream&#include&&string&using&namespace&int&main(){&&&&string&fileName&=&&&;&&&&cin&&&&fileN&//获取文件名&&&&&ifstream&file(fileName.c_str());&//打开文件&&&&&char&buffer[16384];&&&&while(!file.eof())&&&&{&&&&&&&&&file.getline(buffer,&16383);&//一行中只会读取16383个字符,过多会忽略掉&&&&&&&&&&cout&&&&buffer&&&&&//输出&&&&&}&&&&cin.get();cin.get();&//只是为了在屏幕上保留输出结果,可以注释掉&&&&&return&0;}
采纳率:53%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 文件上有把锁怎么打开 的文章

 

随机推荐