|
#include <windows.h>
#include <string>
#include <iostream>
int main() {
// 要写入的UTF-8编码字符串
std::string text = u8"这是一个测试字符串,包含中文字符。";
// 打开文件以写入(如果文件不存在则创建)
HANDLE hFile = CreateFile(
L"output.txt", // 文件名
GENERIC_WRITE, // 写入权限
0, // 不共享
NULL, // 默认安全属性
CREATE_ALWAYS, // 如果文件不存在则创建,如果存在则覆盖
FILE_ATTRIBUTE_NORMAL, // 默认文件属性
NULL); // 无模板文件
// 检查文件是否成功打开
if (hFile == INVALID_HANDLE_VALUE) {
std::cerr << "无法打开文件以写入。" << std::endl;
return 1;
}
// 写入UTF-8编码的字符串到文件
DWORD bytesWritten;
BOOL result = WriteFile(
hFile, // 文件句柄
text.c_str(), // 要写入的字节序列
text.size(), // 字节序列的长度
&bytesWritten, // 接收实际写入的字节数的变量
NULL); // 不使用重叠I/O
// 检查写入是否成功
if (!result) {
std::cerr << "写入文件时出错。" << std::endl;
CloseHandle(hFile); // 关闭文件句柄
return 1;
}
// 关闭文件句柄
CloseHandle(hFile);
std::cout << "字符串已写入文件。" << std::endl;
return 0;
} |
|