当前位置:  开发笔记 > 编程语言 > 正文

你如何用C++打开文件?

如何解决《你如何用C++打开文件?》经验,为你挑选了2个好方法。

我想打开一个文件进行阅读,即C++方式.我需要能够做到:

文本文件,涉及某种读取线功能.

二进制文件,它提供了一种将原始数据读入char*缓冲区的方法.

Derek Park.. 30

ifstream如果您只想阅读(使用一个ofstream写入,或fstream两个用于),您需要使用.

要以文本模式打开文件,请执行以下操作:

ifstream in("filename.ext", ios_base::in); // the in flag is optional

要以二进制模式打开文件,只需添加"binary"标志即可.

ifstream in2("filename2.ext", ios_base::in | ios_base::binary ); 

使用该ifstream.read()函数读取字符块(以二进制或文本模式).使用getline()函数(它是全局的)来读取整行.



1> Derek Park..:

ifstream如果您只想阅读(使用一个ofstream写入,或fstream两个用于),您需要使用.

要以文本模式打开文件,请执行以下操作:

ifstream in("filename.ext", ios_base::in); // the in flag is optional

要以二进制模式打开文件,只需添加"binary"标志即可.

ifstream in2("filename2.ext", ios_base::in | ios_base::binary ); 

使用该ifstream.read()函数读取字符块(以二进制或文本模式).使用getline()函数(它是全局的)来读取整行.



2> 小智..:

根据您的需要,有三种方法可以做到这一点.您可以使用旧式C语言并调用fopen/fread/fclose,或者您可以使用C++ fstream工具(ifstream/ofstream),或者如果您使用的是MFC,请使用CFile类,它提供了实现实际的功能文件操作.

所有这些都适用于文本和二进制,但没有一个具有特定的readline功能.在这种情况下,你最有可能做的是使用fstream类(fstream.h)并使用流操作符(<<和>>)或读取函数来读/写文本块:

int nsize = 10;
char *somedata;
ifstream myfile;
myfile.open("");
myfile.read(somedata,nsize);
myfile.close();

请注意,如果您使用的是Visual Studio 2005或更高版本,则可能无法使用传统的fstream(有一个新的Microsoft实现,略有不同,但完成相同的操作).


你不会在阅读中得到段错误吗?您没有为数据分配任何空间.应该是`char somedata [10]`,对吗?
推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有