[WinAPI] CStdioFile 을 이용한 text 만들기, 쓰기, 읽기, 닫기

CStdioFile 클래스를 이용하여 text 만들기, 쓰기, 읽기, 닫기를 알아보겠습니다.

아래 그림과 같이 버튼 4개를 만들어 주시고 Resource ID를 입력해주세요.

각각의 버튼들은 더블 클릭을 만들어 이벤트 처리 함수를 생성해주세요.

그리고 헤더파일에 아래와 같이 CStdioFile 멤버 변수를 선언합니다.

CStdioFile m_file;

만들기 버튼에 아래와 같이 코딩해줍니다.

void CMFCApplication1Dlg::OnBnClickedButtonMake()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	BOOL bOpen = m_file.Open( _T(".\\Test.txt"), CStdioFile::modeCreate | CStdioFile::modeNoTruncate | CStdioFile::modeReadWrite ); // 파일이 없으면 생성 하고, 있으면 열고, 읽기 쓰기 모드로 Open
	if ( !bOpen )
	{
		AfxMessageBox( _T("Open Error") );
	}
	else
	{
		m_file.SeekToEnd();
	}
}

쓰기 버튼에 아래와 같이 코딩해줍니다.

void CMFCApplication1Dlg::OnBnClickedButtonWrite()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	m_file.WriteString( _T("Test\n") );
}

읽기 버튼에 아래와 같이 코딩해 줍니다.

void CMFCApplication1Dlg::OnBnClickedButtonRead()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	CString sRead;
	m_file.ReadString( sRead );
	AfxMessageBox( sRead );
}

 닫기 버튼에 아래와 같이 코딩해 줍니다.

void CMFCApplication1Dlg::OnBnClickedButtonClose()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	m_file.Close();
}

해당 함수를 실행하면 프로그램 실행 위치에 test.txt가 만들어지게 됩니다.

만약 한글을 입력하려는데 잘 되지 않으면 OnInitDialog에 아래와 같이 setlocale함수를 호출합니다.

#include <locale.h>

setlocale( LC_ALL, "Korean" );