VS2013/MFC基于对话框编程:[19]保存txt文件
1、设计对话框界面,一个用于保存数据的按钮,三个单选按钮用于选择数据类型,两个编辑框分别用来输入数据个数和保存的文件名。
![VS2013/MFC基于对话框编程:[19]保存txt文件](https://exp-picture.cdn.bcebos.com/d3c39889a146b7b158ccd40ec77c34b33d413589.jpg)
2、修改控件的ID:按钮:IDC_Save;单选按钮:IDC_Rand;IDC_Fibonacci;IDC_Factorial;编辑框:IDC_DataNum;IDC_txtName;
![VS2013/MFC基于对话框编程:[19]保存txt文件](https://exp-picture.cdn.bcebos.com/4d3d2ab33c4133ba6f74a8ce6a37c97623bc2f89.jpg)
3、修改属性,添加变量:第一个单选按钮的Group为true,添加变量int DataType;输入数据个数的编辑框的Number属性为true,添加变量UINT m_DataNum;输入文件名的编辑框:添加变量CString m_txtName;
![VS2013/MFC基于对话框编程:[19]保存txt文件](https://exp-picture.cdn.bcebos.com/7c84d1672b5fd546c0a313a77fd0b503c9d22489.jpg)
4、修改构造函数中变量的初始值,将数据个数默认值改为100,将文件名修改默认值为"Data.txt".
![VS2013/MFC基于对话框编程:[19]保存txt文件](https://exp-picture.cdn.bcebos.com/3aae2b4f50b8b43e7aeefcf97132939c2df71989.jpg)
5、编写保存函数,首先获取界面数据,然后判断数据类型,计算出对应的数据,通过CStdioFile类的对象将数据写入txt文件中,Open函数可以指定保存路径,默认保存在工程文件的Demo\Demo\文件夹下。1、随机数 for (int i = 0; i < m_DataNum; i++) Data[i] = rand()%10000;2、斐波那契数列 Data[0] = 1; Data[1] = 1; for (int i = 2; i < m_DataNum; i++) Data[i] = Data[i - 1] + Data[i - 2];3、阶乘 for (int i = 0; i < m_DataNum; i++) { Data[i] = 1; for (int j = 1; j <= i+1; j++) Data[i] *= j; }4、文件保存 CStdioFile file; file.Open(m_txtName, CFile::modeCreate | CFile::modeWrite | CFile::typeText); CString str; for (int i = 0; i < m_DataNum; i++) { str.Format(_T("%d\t%g\n"), i + 1, Data[i]); file.WriteString(str); } file.Close(); AfxMessageBox(_T("已保存数据到 ")+m_txtName+_T(" 文件中!"));
![VS2013/MFC基于对话框编程:[19]保存txt文件](https://exp-picture.cdn.bcebos.com/edafb3bcbe2f4770b42d74696f3b3b8603217989.jpg)
6、测试程序,启动调试,选择数据类型,设置数据个数和文件名称。1、随机数测试,设置100个数每次保存完都有提示。
![VS2013/MFC基于对话框编程:[19]保存txt文件](https://exp-picture.cdn.bcebos.com/52fae62064fb960bcc14aed28fa355e982ae6c89.jpg)
![VS2013/MFC基于对话框编程:[19]保存txt文件](https://exp-picture.cdn.bcebos.com/82eff6d7592ae3efe54ebf8254b6326c56666489.jpg)
![VS2013/MFC基于对话框编程:[19]保存txt文件](https://exp-picture.cdn.bcebos.com/332d496699cf0253235588366b36e29146e85f89.jpg)
7、fibonacci数列测试,设置20个数
![VS2013/MFC基于对话框编程:[19]保存txt文件](https://exp-picture.cdn.bcebos.com/e3d059e833e039722e351059b586304860435689.jpg)
![VS2013/MFC基于对话框编程:[19]保存txt文件](https://exp-picture.cdn.bcebos.com/31097f43d7d448311edd5d14d40f822b75ee5189.jpg)
8、阶乘测试,设置15个数,阶乘增长速度很快,所以没必要保存太多。
![VS2013/MFC基于对话框编程:[19]保存txt文件](https://exp-picture.cdn.bcebos.com/05aae8a75f0f822b6ad8b781c018512c8df14d89.jpg)
![VS2013/MFC基于对话框编程:[19]保存txt文件](https://exp-picture.cdn.bcebos.com/4a594f2c8cf1d8a70205e33746e34b2c57ee4789.jpg)