文档章节

windows下写文件

xxdd
 xxdd
发布于 2017/02/27 09:49
字数 853
阅读 71
收藏 1
点赞 0
评论 0

windows编程中文件操作有以下几种常见方法:
1.C语言中文件操作。
2.C++语言中的文件操作。
3.Win32 API函数文件操作。
4.MFC CFile类文件操作。
5.MFC CFileDialog类的文件操作。
6.注册表文件操作。

下面我来详细说明一下各种文件操作方法:
1. C语言中文件操作.需要包含的头文件STDIO.H
  

写入文件:   

FILE *pfile=fopen("C.txt","w");//以写的方式打开C.txt文件。   

fwrite("Welcome to VCFans!",1,strlen("Welcome to VCFans!"),pfile);//将数据写入文件。   

fflush(pfile);//刷新缓冲区。将缓冲区数据写入文件   

fclose(pfile);//关闭文件   

读取文件:   

FILE *pfile=fopen("C.txt","r");//以读的方式打开C.txt文件。   

char FileContent[100];   

memset(FileContent,0,100);//初始化FileContent   

fread(FileContent,1,100,pfile);//将刚才C.txt文件中的内容读入到FileContent   

MessageBox(FileContent);//输出结果   

fclose(pfile);//关闭文件   

#include <stdio.h>
#include <afx.h>

void main()
{
 LPCTSTR lp = "hello";
 short s = 70;
 long l = 200;
 double d = 20.5;
 char buf[200];

 sprintf(buf, "%s %d %d %f\n", lp, s, l, d);

 FILE *fp;
 fp = fopen("c:\\ais1.txt", "wt");
 fprintf(fp, "%s", buf);
 fclose(fp);
}

2.C++语言中的文件操作。需要包含的头文件fstream.h
    

C++代码

写入文件:   

ofstream ofs("C++.txt");//建立ofstream对像。   

ofs.write("Welcome to VCFans!",strlen("Welcome to VCFans!"));//将数据写入文件   

ofs.close();//关闭ofstream对象。 

读取文件:   

ifstream ifs("C++.txt");   

char FileContent[100];   

memset(FileContent,0,100);//初始化FileContent   

ifs.read(FileContent,100);//读取数据   

ifs.close();//关闭ifstream对像   

MessageBox(FileContent);//输出结果   

3.Win32 API函数文件操作。需要包含的头文件winbase.h,需要类库:kernel32.lib
  

C++代码

写入文件:   

HANDLE hFile;//定义一个句柄。   

hFile=CreateFile("API.txt",   

GENERIC_WRITE,   FILE_SHARE_WRITE,   NULL,   CREATE_NEW,   FILE_ATTRIBUTE_NORMAL,   

NULL);//使用CreatFile这个API函数打开文件   

DWORD Written;   

WriteFile(hFile,"Welcome to VCFans!",strlen("Welcome to VCFans!"),&Written,NULL);//写入文件   

CloseHandle(hFile);//关闭句柄   

读取文件:   

HANDLE hFile;//定义一个句柄。   

hFile=CreateFile("API.txt",   GENERIC_READ,   FILE_SHARE_READ,   NULL,   OPEN_EXISTING,   FILE_ATTRIBUTE_NORMAL,   NULL);//使用CreatFile这个API函数打开文件   

DWORD dwDataLen;   

char FileContent[100];   

ReadFile(hFile,FileContent,100,&dwDataLen,NULL);//读取数据   

FileContent[dwDataLen]=0;//将数组未尾设零。   

CloseHandle(hFile);//关闭句柄   

MessageBox(FileContent);//输出结果  

 

4.MFC CFile类文件操作。需要包含的头文件afx.h

C++代码

写入文件:    

CFile file("CFile.txt",CFile::modeCreate| CFile::modeWrite);//构造CFile对象   

file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//写入数据到文件   

file.Close();//关闭CFile对象。

   读取文件:   

CFile file("CFile.txt",CFile::modeRead);//构造CFile对象   

char FileContent[100];   

memset(FileContent,0,100);//初始化FileContent   

file.Read(FileContent,100);//读入数据   

file.Close();//关闭文件对象   

MessageBox(FileContent);//输出数据   

5.MFC CFileDialog类的文件操作。需要包含的头文件Afxdlgs.h

C++代码

写入文件:   

CFileDialog fileDlg(FALSE,"txt","CFileDialog.txt");//建立CFileDialog对象   

if(IDOK==fileDlg.DoModal())   

{   

       CFile file(fileDlg.GetFileName(),CFile::modeCreate| CFile::modeWrite);//构造CFile对象   

       file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//写入数据到文件   

       file.Close();   

};   

读取文件:   

CFileDialog fileDlg(TRUE,"txt","CFileDialog.txt");//建立CFileDialog对象   

if(IDOK==fileDlg.DoModal())   

{   

      CFile file(fileDlg.GetFileName(),CFile::modeRead);//构造CFile对象   

      char FileContent[100];   

      memset(FileContent,0,100);//初始化FileContent   

      file.Read(FileContent,100);//读入数据   

      file.Close();//关闭文件对象   

      MessageBox(FileContent);   

};   


6.注册表文件操作。 
  

C++代码

写入注册表:   

HKEY hKey;   

DWORD dwSex=1;   

RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//打开注册表键   

RegSetValueEx(hKey,"sex",0,REG_DWORD,(CONST BYTE*)&dwSex,4);//写入注册表数据   

RegCloseKey(hKey);//关闭注册表键   

读注册表:   

HKEY hKey;   

RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//打开注册表键   

DWORD dwType;   

DWORD dwValue;   

DWORD dwSex;   

RegQueryValueEx(hKey,"sex",0,&dwType,(LPBYTE)&dwSex,&dwValue);//查询注册表数据   

RegCloseKey(hKey);//关闭注册表键   

CString str;   

str.Format("sex=%d",dwSex);   

MessageBox(str);   

 

© 著作权归作者所有

共有 人打赏支持
xxdd
粉丝 3
博文 53
码字总数 12940
作品 0
海淀
程序员
windows里面进程线程控制应该用什么头文件

linux下写的这段代码pthread_t id1,id2; windows下一直报错,估计是头文件的问题 请问windows里面进程线程控制应该用什么头文件?

jingzenghui
2011/06/30
1K
5
Windows下 .rtf 批量转换 .doc

Windows 下写个批处理。 @echo off echo 开始更改文件名…… set extension=.doc set/a sum=0 for %%m in (*) do ( if /i not "%%~nxm"=="%~nx0" ( if /i not "%%~xm"=="%extension%" ( ren ......

guanyunyue
2012/10/18
0
0
SublimeText2配置解决代码window下编辑代码提交到linux的格式问题

通常在windows下写代码,然后通过SVN或者直接copy到linux下会有格式问题。 比如^M的结束符问题,会造成shell,c等代码不能正常运行。 通常可以用vim在linux端暴力解决: :set ff=unix 会将该文...

张旭0512
2015/12/18
51
0
Linux的shell脚本如何修改windows的cmd批处理文件,主要是中文乱码问题

我有这样一个需求,服务器上上传有一些windows下写的cmd批处理,我需要在linux服务器上修改这些脚本。 脚本在windows下编写,里面有中文,在linux下就乱码了。cat和sed查看都是乱码的,vim设...

Feng_Yu
2013/11/13
598
1
bash: ./vartest.sh: /bin/sh^M: bad interpreter: No

在开始解决此问题前,我们先回顾一下linux与windows之间换行的区别 window下一行结束是rn,linux下没有回车'r',有换行,读完8个字符后是'n' 经分析认为此文件是在window下写的,所以在每行后面...

狼行-狼行
2014/04/18
0
0
windows写的shell脚本执行报错的解决方法

今天学了个小技能,有必要推广一下。 事情是这样的,我经常需要去服务器执行一套更新重启应用的操作,所以写了个脚本。 但是脚本是在windows下写的,放到linux上后,总是报错,原因是每一行的...

云胜886
2017/10/31
0
0
llvm安装在windows的visual studio上问题

@qq.com 你好,想跟你请教个问题: 我在visual studio2010上安装好了llvm和clang(3.2),也用hello.c测试过了。我想问的是,你的llvm.sln下面的LLVMHello这个Pass能够编译产生库文件吗?或者...

MasterSui
2013/03/15
680
0
con.py这个名字在windows下不能被存在吗

今天在mac下写了个代码,命名为con.py,直接用别的主程序调用它运行没有问题,然后通过vm看到,它在windows10下被强行改名为con%.py,而且在windows下不能被重命名;使用pyinstaller打包直接...

tianyiya
01/15
0
0
怎么将在windows 下写好的程序导入Linux虚拟机的桌面上

怎么将在windows 下写好的程序导入Linux虚拟机的桌面上??? 大哥能否告知一下? 感谢!叩拜!!!

鹏城二少
2012/05/12
277
3
Windows下mock环境搭建-加速项目Api开发

本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 公司进行技术部拆分,以项目制作为新的开发模式,前端+移动端+后端,于是加速Api开发变得很有必要,准备使用mock加速进程...

liuzxgeek
2016/10/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

面试系列-40个Java多线程问题总结

前言 这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也...

Ryan-瑞恩
5分钟前
0
0
微信分享的细节

分享的缩略图要求: 一、图片大小小于32k 二、图片的尺寸为 宽度 :128px 高度:128px 分享title 和 description 出现金额等 以上情况存在会导致触发分享按钮 但是页面没有反应...

Js_Mei
11分钟前
0
0
【2018.07.23学习笔记】【linux高级知识 Shell脚本编程练习】

1、编写shell脚本,计算1-100的和; #!/bin/bashsum=0for i in `seq 1 100`do sum=$[$sum+$i]doneecho $sum 2、编写shell脚本,要求输入一个数字,然后计算出从1到输入数字的和,要求...

lgsxp
13分钟前
0
0
xss攻防浅谈

导读 XSS (Cross-Site Script) 攻击又叫跨站脚本攻击, 本质是一种注入攻击. 其原理, 简单的说就是利用各种手段把恶意代码添加到网页中, 并让受害者执行这段脚本. XSS能做用户使用浏览器能做的...

吴伟祥
13分钟前
0
0
js回调的一次应用

function hideBtn(option) { if (option == 1) { $("#addBtn").hide(); $("#addSonBtn").hide(); }}$("body").on("click", "#selectBtn", function () {......

晨猫
20分钟前
0
0
C++_读写ini配置文件

1.WritePrivateProfileString:

一个小妞
20分钟前
0
0
通往阿里,BAT的50+经典Java面试题及答案解析(上)

Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改。 代码复用。 增强代码的可靠性和灵活性。 增加代码的可理解性...

Java大蜗牛
20分钟前
1
0
数据库两大神器【索引和锁】

前言 只有光头才能变强 索引和锁在数据库中可以说是非常重要的知识点了,在面试中也会经常会被问到的。 本文力求简单讲清每个知识点,希望大家看完能有所收获 声明:如果没有说明具体的数据库...

Java3y
24分钟前
0
0
Application Express安装

Application Express安装文档 数据库选择和安装 数据库选择 Oracle建议直接12.2.0.1.0及以上的版本,12.1存在20618595bug(具体可参见官方文档) Oracle 12c 中安装oracle application expr...

youfen
36分钟前
0
0
OpenMessaging概览

序 本文主要研究一下OpenMessaging 架构图 namespace,类似cgroup的namespace,用来进行安全隔离,每个namespace有自己的producer、consumer、topic、queue等 producer,消息生产者有两类,一...

go4it
41分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部