精华内容
下载资源
问答
  • C++打开文件的方式

    千次阅读 2019-06-10 15:04:57
    一般情况下,再打开一个指定文件时会有两种情况 (1) 文件不存在。 (2) 文件存在。 对于第一种情况,ofstream类的对象会默认自动创建一个同名文件;而第二种情况下,ofstream类的对象会默认将该文件的内容删除,问...

    一般情况下,再打开一个指定文件时会有两种情况

    (1) 文件不存在。

    (2) 文件存在。

    对于第一种情况,ofstream类的对象会默认自动创建一个同名文件;而第二种情况下,ofstream类的对象会默认将该文件的内容删除,问数据输出到该文件做好准备。

    假如不想使用上面的默认的打开方式,我们可以用oftream或者ifstream对象的构造函数或者open()函数指定一种打开方式,首先来看一下open()函数。

    open()函数的原型为 void open(const char * fname,int mode);

    其中参数fname是代表文件名的字符串,第二个参数mode是文件的打开方式,每一位代表一种打开方式,在ios基类中用枚举常量表示。

    ios::in        打开文件进行读操作,即读取文件中的数据

    ios::out     打开文件进行写操作,即输出数据到文件中

    ios::ate    打开文件时文件指针指向文件末尾,但是你可以在文件中的任何地方写数据

    ios::app   打开文件不会清空数据,文件指针始终在文件末尾,因此只能在文件末尾写数据

    ios:trunc  默认,若打开文件已存在,测清空文件的内容

    ios::nocreate    若打开文件不存在则不建立,返回打开失败信息

    ios::noreplace  打开文件时不能覆盖,若文件存在测返回打开失败信息

    ios::binary          打开文件为二进制文件,否则为文本文件

    注:ate 是 at end 的缩写,trunc是truncate(截断)的缩写,app是append(追加)的缩写
    --------------------- 
    作者:l_stream 
    来源:CSDN 
    原文:https://blog.csdn.net/l_stream/article/details/6876583 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • Linux C++打开文件选择框,类似[img=https://img-bbs.csdn.net/upload/202007/21/1595326979_633328.png][/img] 麻烦帮给出头文件及函数;
  • C/C++打开文件函数fopen和fopen_s用法的比较 语言:C/C++ 测试环境:VS2013 由于VS的高版本对文件操作的安全性有了较高的要求,所以会出现如下情况: 1、fopen的用法: 2、fopen_s的...
    C/C++打开文件函数fopen和fopen_s用法的比较
    语言:C/C++

    测试环境:VS2013

    由于VS的高版本对文件操作的安全性有了较高的要求,所以会出现如下情况:

    1、fopen的用法:



    2、fopen_s的用法:



    探讨比较: 

    1.fopen_s的安全是在于比函数fopen多了溢出检测。


    2.在使用上,函数fopen的返回值是文件指针,如果返回的文件指针为NULL时,则表示打开文件失败。而函数fopen_s的返回值是相应的错误代码,通过查看错误代码代表的含义,有助于你排查问题。

    3.fopen_s打开的文件不能共享,如果你打开的文件需要共享的话,不能使用fopen_s函数。可以考虑_fsopen,_wfsopen这两个函数。



    展开全文
  • fopen c++打开文件

    万次阅读 2012-05-15 11:48:39
    函数原型:FILE * fopen(const char * path,const char * mode);... 返回值: 文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。  一般而言,
    函数原型:FILE * fopen(const char * path,const char * mode);
    

      相关函数:openfclose,fopen_s[1] ,_wfopen

      所需库: <stdio.h>

      返回值: 文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。

      一般而言,打开文件后会作一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。

      参数说明:

      参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。

      mode有下列几种形态字符串:

      r 以只读方式打开文件,该文件必须存在。

      r+ 以可读写方式打开文件,该文件必须存在。

      rb+ 读写打开一个二进制文件,只允许读写数据。

      rt+ 读写打开一个文本文件,允许读和写。

      w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

      w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

      a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

      a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)

      wb 只写打开或新建一个二进制文件;只允许写数据。

      wb+ 读写打开或建立一个二进制文件,允许读和写。

      wt+ 读写打开或着建立一个文本文件;允许读写。

      at+ 读写打开一个文本文件,允许读或在文本末追加数据。

      ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

      上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask 值。

      有些C编译系统可能不完全提供所有这些功能,有的C版本不用"r+","w+","a+",而用"rw","wr","ar"等,读者注意所用系统的规定。 程序示例  程序示例1

      #include <stdio.h>

      #include <stdlib.h> //为了使用exit()

      int main()

      {

      int ch;

      FILE* fp;

      char fname[50]; //用于存放文件名

      printf("输入文件名:");

      scanf("%s",fname);

      fp=fopen(fname,"r"); //只供读取

      if(fp==NULL) //如果失败了

      {

      printf("错误!");

      exit(1); //中止程序

      }

      //getc()用于在打开文件中获取一个字符

      while((ch=getc(fp))!=EOF)

      putchar(ch);

      fclose(fp); //关闭文件

      return 0;

      }

      注意!初学者往往会犯一个错误,即在输入文件名时不加后缀名,请注意加上!

      程序示例2[2]

      #include <stdio.h>

      FILE *stream, *stream2;

      int main( void )

      {

      int numclosed;

      // Open for read (will fail if file "crt_fopen.c" does not exist)

      if( (stream = fopen( "crt_fopen.c", "r" )) == NULL ) // C4996

      // Note: fopen is deprecated; consider using fopen_s instead

      printf( "The file 'crt_fopen.c' was not opened\n" );

      else

      printf( "The file 'crt_fopen.c' was opened\n" );

      // Open for write

      if( (stream2 = fopen( "data2", "w+" )) == NULL ) // C4996

      printf( "The file 'data2' was not opened\n" );

      else

      printf( "The file 'data2' was opened\n" );

      // Close stream if it is not NULL

      if( stream)

      {

      if ( fclose( stream ) )

      {

      printf( "The file 'crt_fopen.c' was not closed\n" );

      }

      }

      // All other files are closed:

      numclosed = _fcloseall( );

      printf( "Number of files closed by _fcloseall: %u\n", numclosed );

      }

    展开全文
  • C++打开文件选择窗口

    千次阅读 2018-10-01 11:19:51
    //新建一个对话窗口,选择文件 string get_path() { OPENFILENAME ofn; char szFile[300]; ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = NULL; ofn.lpstrFile = (LPWSTR...
    #include<windows.h>
    #include<iostream>
    #include<string>
    
    using namespace std;
    
    //将一个LPCWSTR转换为string
    string Lpcwstr2String(LPCWSTR lps) {
    	int len = WideCharToMultiByte(CP_ACP, 0, lps, -1, NULL, 0, NULL, NULL);
    	if (len <= 0) {
    		return "";
    	}
    	else {
    		char *dest = new char[len];
    		WideCharToMultiByte(CP_ACP, 0, lps, -1, dest, len, NULL, NULL);
    		dest[len - 1] = 0;
    		string str(dest);
    		delete[] dest;
    		return str;
    	}
    }
    
    //新建一个对话窗口,选择文件
    string get_path() {
    	OPENFILENAME ofn;
    	char szFile[300];
    	
    	ZeroMemory(&ofn, sizeof(ofn));
    	ofn.lStructSize = sizeof(ofn);
    	ofn.hwndOwner = NULL;
    	ofn.lpstrFile = (LPWSTR)szFile;
    	ofn.lpstrFile[0] = '\0';
    	LPTSTR        lpstrCustomFilter;
    	DWORD         nMaxCustFilter;
    	ofn.nFilterIndex = 1;
    	LPTSTR        lpstrFile;
    	ofn.nMaxFile = sizeof(szFile);
    	ofn.lpstrFilter =L"ALL\0*.*\0Text\0*.TXT\0";
    	ofn.lpstrFileTitle = NULL;
    	ofn.nMaxFileTitle = 0;
    	ofn.lpstrInitialDir = NULL;
    
    	ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
    
    	string path_image = "";
    	if (GetOpenFileName(&ofn)) {
    		path_image = Lpcwstr2String(ofn.lpstrFile);
    		return path_image;
    	}
    	else {
    		return "";
    	}
    }
    
    
    
    int main() {
    	string path_image = "";
    	string path_weight = "";
    	cout << "选择权重文件:";
    	path_weight = get_path();
    	cout << path_weight<<endl;
    	cout << "视频检测输入1,图片检测输入2,其它输入3:";
    	int tag;
    	cin >> tag; //设置标记
    	cout << "请选择文件:";
    	path_image= get_path();
    	switch (tag) {
    		case 1:
    			cout << path_image<<endl;
    			break;
    		case 2:
    			cout << path_image << endl;
    			break;
    		case 3:
    			cout << path_image << endl;
    			break;
    		default: break;
    	}
    
    	system("pause");
    	return 0;
    
    }

     

    展开全文
  • C++打开文件常用方式

    千次阅读 2013-04-08 18:09:17
    ios::app: 以追加的方式打开文件 ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性 ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文 ios::in: 文件以输入
  • 这测试程序很简单……能通过可是偏偏不能在路径下创建文件,请问是什么问题? 而且如果我把 ``` string filename="E:\\大学\\数字内容安全\\实验3\\体育分类测试文档\\01足球\\a"; ``` 改成 ``` ...
  • C++文件打开方法

    千次阅读 2020-08-15 16:28:13
    C++文件打开方法为什么要打开文件如何打开文件C和C++都能用的freopen版fopen版 为什么要打开文件 有时候,我们需要把一些内容保存到文件中,以便后期使用。今天小编就来介绍一下如何打开文件。 如何打开文件 C和C++...
  • c++文件打开失败

    千次阅读 2019-05-07 20:09:25
    在最近的学习过程中,关于文件的操作我遇到了一些问题——用VS编写代码对文件进行操作时,无法正常的打开文件。这样的问题我遇到了几次,一开始总是找不到解决方案,网上的解决办法也都不一样,跟自己的实际情况不太...
  • C++文件操作:打开文件和写入文件

    千次阅读 2019-05-29 09:11:47
    如果程序的运行结果仅仅显示在屏幕上,当要再次查看结果时,必须将程序重新运行一遍;而且,这个结果也不能被保留。...外部文件:指磁盘文件,也是通常所谓的文件。 内部文件:指在程序中运行的文件,更正式...
  • C++文件流打开文件失败原因

    千次阅读 2010-07-16 20:46:00
     今天写一个文件分割与合并的程序,开始使用C语言的file操作fopen等函数写的,后来又用C++文件流写了一遍,发现了一些问题。  在读子文件的时候,只能成功的打开第一个子文件进行读操作,第二个文件就...
  • C++ 文件打开模式

    千次阅读 2014-03-14 20:46:51
    in:打开文件时做读操作; out:打开文件时做写操作; app:在每次写之前找到文件尾; ate:打开文件后立即将文件定位在文件尾; trunc:打开文件时清空已存在的文件流; binary:以二进制...
  • 在对文件进行读写操作之前,先要打开文件打开文件有以下两个目的: 通过指定文件名,建立起文件和文件流对象的关联,以后要对文件进行操作时,就可以通过与之关联的流对象来进行。 指明文件的使用方式。使用方式...
  • C/C++——打开文件读取数据的各种方式

    万次阅读 多人点赞 2017-04-02 21:00:07
    打开文件在fstream类中,成员函数open()实现打开文件的操作,从而将数据流和文件进行关联,通过ofstream,ifstream,fstream对象进行对文件的读写操作 函数:open()void open ( const char * filename, ios_...
  • Visual C++6.0 打开文件闪退崩溃解决方案

    万次阅读 多人点赞 2019-03-20 16:03:03
    首先感谢这位  yuebinghaoyuan  博主的经验分享! 上链接: https://blog.csdn.net/yuebinghaoyuan/article/details/8006479 ...不然你的打开文件功能还是崩溃的。 希望对您有所帮助!
  • 1.MFC打开文件并按行读取文件内容 void CFileDlg::OnBnClickedButtonFileRead() { vector v_str; CFileDialog fileDlg(TRUE); fileDlg.m_ofn.lpstrTitle = L"Open File"; fileDlg.m_ofn.lpstrFilter = L"Text ...
  • C++ 判断文件CFile已经打开

    千次阅读 2019-05-31 16:29:52
    m_hFile:表示一个打开文件的操作系统文件句柄。通过对m_hFile与CFile::hFileNull的比较来判断该文件是否已经打开。 示例代码: CStringstrFilename=_T("D:\\大学语文.docx"); CFilefile; file.Open(strFilename,...
  • c++输入文件流ifstream用法详解

    万次阅读 多人点赞 2018-05-18 20:42:29
    函数参数: filename 要打开文件的文件名 mode 打开文件的方式 member constant stands for access in input File 读的方式打开文件 out output 写的方式打开文件 binary binary 二进制方式打开 ate at end 打开的...
  • c++编写打开文件进行读写的函数

    千次阅读 2013-12-03 11:53:35
    编写打开文件用于输入输出的函数 */ #include #include #include using namespace std; //编写open_in_file函数打开文件用于输入 ifstream& open_in_file(ifstream &in,const string &file) {//利用引用传递...
  • C++打开和写入文件fopen和fopen_s

    千次阅读 2019-12-29 16:39:02
    C++打开和写入文件fopen()和fopen_s() 参考了https://blog.csdn.net/qq_35263780/article/details/79870792 fopen : FILE *fp1;//建立一个文件操作指针 fp1= fopen (“111.txt”, “a”); //将指向这个文件文件流...
  • 文件打开模式 C++

    千次阅读 2017-11-15 12:29:11
    打开文件,以便读取 ios_base::out 打开文件,以便写入 ios_base::ate 打开文件,并移到文件尾 ios_base::app 追加到文件尾 ios_base::trunc 如果文件存在,则截短文件 ios_base::binary
  • 使用 ShellExecute 打开文件或执行程序 可以使用 ShellExecute 打开文件或执行程序。 原型: HINSTANCE ShellExecute( _In_opt_ HWND hwnd,//父窗口句柄或出错时显示错误父窗口的句柄,可以为 NULL _In_opt...
  • C++实现文件以默认打开方式打开

    千次阅读 2011-05-05 20:29:00
    选通过文件扩展名.doc从注册表查出关联程序msword,然后再取得其相关打开文件的参数表,然后再按类似如下的方法传递; ExeFileName:= 'x:/xyz/msword.exe ';//Word的路径,查注册表得 ...
  • ofstream app("zay.txt",ofstream::app); app; 问题1:书上说1121应该会加在文件末尾,但是我用for循环输出文件时却发现1121在第一个...问题2:为什么我运行程序后,打开文件还是和以前一样,并没有添加1121? 谢谢~
  • C++文件打开与关闭

    千次阅读 2017-08-03 14:07:59
    文件的基本概念 本节中文件指的是磁盘文件C++根据文件(file)内容的数据格式,可分为两类: ...C++把每个文件都看成一个有序的字节流,每一个文件或者以文件结束符(end of file marker)结束,或者在特定
  • C++打开指定文件夹,并选中文件

    千次阅读 2014-08-22 10:25:30
    今天写代码的时候需要一个打开指定文件夹并选中文件的功能,于是乎就度娘了一下,找到了2中方法,遂记之以留后用,这里也顺便给大家分享一下. 原文地址:
  • C++文件打开与关闭

    千次阅读 2018-05-01 18:24:38
    3.文件流类和文件流对象 标准输入输出流类: 用于文件操作的文件类: 二实现方法讲解 建立一个输出文件流对象: 使用成员函数close(); 知识讲解 首先要懂几个非常重要的概念: 1.文件 存储在外部介质上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 335,427
精华内容 134,170
关键字:

c++打开文件

c++ 订阅