728x90
MFC 간단한 파일 입출력 예제 (최신 Visual Studio 사용시)
이 포스트는 이전 블로그에서 이전된 포스트입니다.
먼저 파일 읽기, 쓰기 예제로 들어가기전에
최신버전의 Visual Studio를 쓰다보니 Unicode이어서 소스에 추가적인 작업이 조금 더해졌다.
(대부분의 문서가 다 멀티바이트 방식이라 동작을 안해서.. 직접 정리한다.)
따라서 이는 유니코드 기준이며 멀티바이트 사용시, 알아서 문자열 앞 L 혹은 TCHAR등을 보고 고려하여 변경하여야한다.
CString 과 char*의 변형은 아래 링크를 참고하면 됩니다.
MFC CString <-> char* 로 변환하기 / 유니코드(Unicode) 환경(최신 Visual Studio) :: 이야기하는 남자 (tistory.com)
MFC CString <-> char* 로 변환하기 / 유니코드(Unicode) 환경(최신 Visual Studio)
이 포스트는 이전 블로그에서 이전된 포스트입니다. 검색해 보면 다들 멀티바이트의 경우라 현재의 최신버전 visual studio에서는 오류를 출력한다. 따라서 최신 컴파일러를 사용해 유니코드 환경
talkout.tistory.com
반응형
파일 읽기 예제입니다.
CFile Rfile;
if (!Rfile.Open(L"test.txt", CFile::modeRead))
{
MessageBox(L"파일을 열지 못했습니다.", L"경고!", MB_OK | MB_ICONHAND);
return;
}
UINT FileLength = (UINT)Rfile.GetLength();
char* ps = new char[FileLength];
Rfile.Read(ps, FileLength);
Rfile.Close();
CString str;
int len = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, ps, -1, NULL, NULL);
str = new TCHAR[len];
MultiByteToWideChar(CP_ACP, 0, ps, -1, (LPWSTR)(LPCWSTR)str, len);
delete ps;
//Testing
AfxMessageBox(str);
파일 쓰기 예제입니다.
CFile Wfile;
if (!Wfile.Open(L"test.txt", CFile::modeCreate | CFile::modeWrite))
{
MessageBox(L"파일을 열지 못했습니다.", L"경고!", MB_OK | MB_ICONHAND);
return;
}
char* pstr = new char[27];
char* ppstr = pstr;
for (int i = 0; i<26; i++)
*ppstr++ = 'A' + i;
*ppstr = NULL; // NULL 문자로 끝나게 한다.
Wfile.Write(pstr, 27);
Wfile.Close();
delete pstr;
.
728x90
'기타' 카테고리의 다른 글
MFC Edit Control 에서 Enter 키 입력 시, 줄바꿈되도록 하기 / 상하좌우 스크롤바 (0) | 2021.12.28 |
---|---|
(서브라임텍스트) sublime text 설치 후, 한글 사용을 위한 셋팅들 (0) | 2021.12.27 |
CString 글자수 확인 및 공백 제거 후 확인 (0) | 2021.12.27 |
mfc140ud.dll, msvcp140d.dll, ucrtbased.dll, vcruntime140d.dll 오류시 해결방안 (0) | 2021.12.23 |
MFC 문자열 CString 한자씩 잘라내기 혹은 특정 부분만 잘라내기 (CString Mid, Right, Left 함수) (0) | 2021.12.23 |