输入输出文件流

简介: 首先建立一个单文档视图,记得VIEW的父类要选CFORMVIEW。这样的话可以在VIEW的界面中出现一个类似于对话框的东西,然后在上面放上两个对话框和两个编辑框。对两个编辑框创建两个控件变量。

首先建立一个单文档视图,记得VIEW的父类要选CFORMVIEW。这样的话可以在VIEW的界面中出现一个类似于对话框的东西,然后在上面放上两个对话框和两个编辑框。对两个编辑框创建两个控件变量。针对两个对话框做两个点击操作,代码如下:

void CfilestreamView::OnBnClickedButton1()

{

     // TODO: 在此添加控件通知处理程序代码

 

         // 用屏幕输入内容更新m_Var1 m_Var2

     UpdateData(TRUE);

 

     // 创建文件C:/ARC.ARC

     CFile f;

     f.Open(_T("c://arc.arc"),CFile::modeCreate|CFile::modeWrite);

 

     // 创建一个CArchive 对象,并将文件与对象关联

     CArchive ar(&f,CArchive::store);

    CString st1,st2;

     m_edit1.GetWindowText(st1);

     m_edit2.GetWindowText(st2);

     // 串行化m_Var1 m_Var2 到文档

     ar<<st1<<st2;

 

    

 

     // 关闭文档

     ar.Close();

 

     // 关闭文件

     f.Close();

 

}

 

void CfilestreamView::OnBnClickedButton2()

{

     // TODO: 在此添加控件通知处理程序代码

         CFile f;

     if ( f.Open(_T("c://arc.arc"),CFile::modeRead )== FALSE )

     {    MessageBox(_T("Open file ERROR"),_T("ARCH for Windows"));

         return;

     }

 

     // 创建一个CArchive 对象,并将文件与对象关联

     CArchive ar(&f,CArchive::load);

    CString st3,st4;

     // 从对象中抽取数据并赋值给成员变量

     ar>>st3>>st4;

 

 

     m_edit1.SetWindowTextW(st3);

     m_edit2.SetWindowTextW(st4);

     // 关闭文档

     ar.Close();

 

     // 关闭文件

     f.Close();

 

     // 更新屏幕显示

     UpdateData(FALSE);

 

 

}

 

///////////////////////////////////////////////////

也可以对控件创建两个VALUE型的CString变量,这样就可以直接更简单的来实现了。

 

 

 

 

关于UpdageData()函数的介绍:

BOOL UpdateData(

  BOOL bSaveAndValidate = TRUE

);

//ParametersbSaveAndValidate Flag that indicates whether dialog box is being initialized (FALSE)or data is being retrieved (TRUE).

  翻译一下:UpdateData,顾名思义,是用来刷新数据的。

  UpdateData(TRUE) -- 刷新控件的值到对应的变量

  UpdateData(FALSE) -- 拷贝变量值到控件显示例如,窗口中用 DDX_Text(pDX, IDC_EDIT1, m_usercode); IDC_EDIT1编辑框控件与m_usercode变量做了关联,如果修改m_usercode之后要想对应控件显示更改,则需要调用UpdateData(FALSE);反之在IDC_EDIT1oneditchanged()中需要加入UpdateData(TRUE);

  简单的说,如果Updatedata(TRUE) == 将控件的值赋值给成员变量;

  Updatedata(FALSE) == 将成员变量的值赋值给控件;

目录
相关文章
|
机器学习/深度学习 存储 缓存
输入输出大全(普通输入输出和快读快写)C/C++
输入输出大全(普通输入输出和快读快写)C/C++
290 0
|
2月前
|
安全 C# 开发者
C# 一分钟浅谈:文件操作与文件流详解
【9月更文挑战第4天】在日常开发中,文件的读写是基本而重要的任务。C# 通过 `System.IO` 命名空间提供了多种工具,如 `FileStream`、`StreamReader` 和 `StreamWriter` 等,用于处理文件和流。本文从基础概念入手,详细介绍了这些类的使用方法,并讨论了常见错误及其避免策略,包括文件不存在、权限问题和文件被占用等。通过示例代码,展示了如何创建、读取文件以及进行二进制数据操作,并强调了异常处理和性能优化的重要性。掌握这些技巧对于提升编程能力至关重要。
181 2
|
5月前
|
C++ iOS开发 开发者
C++一分钟之-文件输入输出(I/O)操作
【6月更文挑战第24天】C++的文件I/O涉及`ifstream`, `ofstream`和`fstream`类,用于读写操作。常见问题包括未检查文件打开状态、忘记关闭文件、写入模式覆盖文件及字符编码不匹配。避免这些问题的方法有:检查`is_open()`、显式关闭文件或使用RAII、选择适当打开模式(如追加`ios::app`)以及处理字符编码。示例代码展示了读文件和追加写入文件的实践。理解这些要点能帮助编写更健壮的代码。
62 2
|
存储 安全 编译器
C#中使用I/O文件流
流,即是二进制数值,文件和流 I/O(输入/输出)是指在存储媒介中传入或传出数据。在 .NET 中,System.IO命名空间包含允许以异步方式和同步方式对数据流和文件进行读取和写入操作的类型。这些命名空间还包含对文件执行压缩和解压缩的类型,以及通过管道和串行端口启用通信的类型。命名空间:System.IO程序集:System.Runtime.dll。
96 1
|
存储 安全 C语言
C++输入和输出流1
C++输入和输出流1
49 0
|
存储 C++
重定向输入输出freopen,文件流fstream
重定向输入输出freopen,文件流fstream
|
存储 iOS开发 C++
C++之I/0流操作(标准流、文件流、二进制操作等)
C++之I/0流操作(标准流、文件流、二进制操作等)
166 0
|
存储 iOS开发 C++
C++中文件操作与文件流
🐰文件操作与文件流 🏡文件流类和文件流对象 🏡文件的打开与关闭 🌸1.文件的打开 🌸2.文件的关闭 🏡对文本文件的操作 🏡对二进制文件的操作 🌸1.用成员函数write和read操作二进制文件 🌸2.随机访问二进制文件
文件输入输出流
文件输入输出流
132 0
|
存储 程序员 C++
C++输入输出文件流
C++输入输出文件流
176 0
C++输入输出文件流