C++怎么读入非文本文件中的内容

时间:2023-03-10 06:33:28
C++怎么读入非文本文件中的内容

C++怎么读入非文本文件中的内容

3条回答

#include <io.h>
#include <windows.h>
void main()
{
char* pFileName = "d:/test.txt";
// 文件路径
if (_access(pFileName, ) != -) // 判断文件是否存在
{
HANDLE hFile = CreateFile(pFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL); // 以只读方式打开文件
DWORD dwLen;
DWORD dwSize = GetFileSize(hFile, &dwLen); // 获取文件长度
char* pBuf = new char[dwSize]; // 创建BUFFER
ReadFile(hFile, pBuf, dwSize, &dwLen, NULL);// 读取文件
CloseHandle(hFile); // 关闭文件
}
}
std::ofstream file(fullname.c_str(), ios::out | ios::binary); file << info; file.close();上面的方法,以二进制的形式将文件读入。当然,你要解析文件的内容的话,必然要知晓文件是什么格式的,然后进行转码。比如base64转string之类的。
说到底计算机存储的文件都是以二进制形式存储的,但是区别是,习惯上认为:
(1)、文本文件(2)、二进制文件(称为非文本文件)所以用打开文件文件的方法就可以了ifstream fin("yourfilename", ios::in|ios::binary);
fin.read((char*)&bufferpointer, sizeof(yourdatatype));