日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

win32文件读写demo

發布時間:2025/4/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 win32文件读写demo 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

新建一個控制臺工程;代碼;

// file.cpp : Defines the entry point for the console application. //#include "stdafx.h" #include <windows.h> #include <tchar.h> #include <stdio.h>HANDLE hOutput;void perro(LPTSTR pszTitle){LPVOID pvErrMsg = NULL;DWORD nError = GetLastError();FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,NULL, nError,MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED),(LPTSTR)&pvErrMsg,0, NULL);TCHAR szText[256];HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);wsprintf(szText, "%s(errno=%d):%s\n", pszTitle, nError, (LPTSTR)pvErrMsg);WriteConsole(hOutput, szText, wcslen(szText), NULL, NULL);WriteConsole(hOutput, szText, 50, NULL, NULL);LocalFree(pvErrMsg); }void Create() {HANDLE hFile = CreateFile(_T("Y:/file.txt"), GENERIC_WRITE,FILE_SHARE_READ, NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL);CloseHandle(hFile); } void Write() {HANDLE hFile = CreateFile(_T("Y:/file.txt"), GENERIC_WRITE,FILE_SHARE_READ, NULL, OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL);// 1 多字節字符集CHAR szText[] = "hello win32 file";DWORD nLen = 0;WriteFile(hFile, szText, strlen(szText), &nLen, NULL);printf("準備寫入:%d,實際寫入:%d\n",strlen(szText), nLen);// 2 Unicode字符集//TCHAR szText[] = _T("hello file");//DWORD nLen = 0;//WriteFile(hFile, szText, wcslen(szText)*sizeof(szText[0]), &nLen, NULL);//TCHAR pszText[256] = { 0 };//wsprintf(pszText, _T("準備寫入:%d,實際寫入:%d\n"), wcslen(szText), nLen);//WriteConsole(hOutput, pszText, wcslen(pszText), NULL, NULL);CloseHandle(hFile); } void Read() {HANDLE hFile = CreateFile(_T("y:/file.txt"),GENERIC_READ, FILE_SHARE_READ, NULL,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL);DWORD nHight = 0;DWORD nLow = GetFileSize(hFile, &nHight);DWORD nLen = 0;// 1 多字節字符集//CHAR szText[256] = { 0 };//ReadFile(hFile, szText, nLow, &nLen, NULL);//printf("數據:%s,準備讀取:%d,實際讀取:%d\n",szText, nLow, nLen);// 2 Unicode 字符集TCHAR szText[256] = { 0 };ReadFile(hFile, szText, nLow, &nLen, NULL);TCHAR pszText[256] = { 0 };wsprintf(pszText, _T("數據:%s, 準備讀取 : %d, 實際讀取 : %d\n"), szText, nLow, nLen);//WriteConsole(hOutput, pszText, wcslen(pszText), NULL, NULL);WriteConsole(hOutput, pszText, 150, NULL, NULL);CloseHandle(hFile); } void UseFile() { // CopyFile( _T("y:/file.txt"), _T("Y:/123/nofile.txt"), FALSE ); // DeleteFile( _T("y:/file.txt"));MoveFile(_T("y:/123/nofile.txt"), _T("y:/file.txt"));perro(_T("MoveFile")); }int _tmain(int argc, _TCHAR* argv[]) {hOutput = GetStdHandle(STD_OUTPUT_HANDLE);Create( );Write( );Read( );//UseFile();return 0; }

運行如下;

WriteConsole(hOutput, szText, wcslen(szText), NULL, NULL) 這句,wcslen(szText)會報如下的錯,

? ? 先改為直接使用數值,?WriteConsole(hOutput, szText, 50, NULL, NULL);

如果要使用printf則包含?#include <stdio.h>;

hOutput = GetStdHandle(STD_OUTPUT_HANDLE),獲取控制臺窗口句柄;

WriteConsole(hOutput, szText, 50, NULL, NULL),往控制臺窗口寫;

總結

以上是生活随笔為你收集整理的win32文件读写demo的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。