mfc 파일 입출력 예제

고유한 입력/출력 처리를 작성하는 경우 다음 클래스, 특히 CArchive 및 CFile을 사용합니다. 일반적으로 이러한 클래스에서 파생될 필요가 없습니다. 응용 프로그램 프레임워크를 사용하는 경우 파일 메뉴에서 열기 및 저장 명령의 기본 구현은 문서의 Serialize 함수를 재정의하여 문서의 직렬화 방법에 대한 세부 정보를 제공하는 한 파일 I/O(클래스 CArchive 사용)를 처리합니다. 내용. 파일 클래스 및 직렬화에 대한 자세한 내용은 MFC의 파일 문서 및 일련 화 문서를 참조하십시오. 그러나 나중에 예제에서는 fstream.h가 아닌 fstream이 포함됩니다. 내가 포함 하는 경우 , g++ (mingw) 내가 얻을: 치명적인 오류: fstream.h: 아니 이러한 파일 또는 디렉토리 메모장에 처음부터 파일을 만든 말할 때, 당신은 입력 의미 “이것은 줄 1” 등 메모장을 사용 하 여 파일에? 코드 중 하나처럼 들릴 수 있습니다::블록 설정은 실행 가능한 디렉토리 대신 개인 디렉토리로 설정됩니다. 하지만 어느 것이 확실하지 않습니다. 자세한 내용은 http://stackoverflow.com/questions/4017034/c-where-does-the-ofstream-class-save-the-files-to 참조하십시오.

나는 파일이 존재해야합니다 동의합니다. 그러나 어디로 갔는가? 모르겠어. 어쩌면 고유 한 이름을 지정한 다음 전체 하드 드라이브에서 파일 이름 검색을 수행합니까? stdio 라이브러리는 파일에 쓰는 데 필요한 함수를 제공합니다: Read는 버퍼에 대한 포인터와 읽을 바이트 수를 가져와 읽은 실제 바이트 수를 반환합니다. 파일 끝(EOF)에 도달했기 때문에 필요한 바이트 수를 읽을 수 없는 경우 실제 읽은 바이트 수가 반환됩니다. 읽기 오류가 발생하면 예외가 throw됩니다. 쓰기는 Read와 유사하지만 작성된 바이트 수는 반환되지 않습니다. 지정된 모든 바이트를 쓰지 않는 것을 포함하여 쓰기 오류가 발생하면 예외가 throw됩니다. 유효한 CFile 개체가 있는 경우 다음 예제와 같이 파일을 읽거나 쓸 수 있습니다.

파일은 데이터가 저장되는 메모리의 공간에 불과합니다. 프로그램의 파일 읽기 부분을 함수를 분리하려고 합니다. 문제는 const char *로 파일 콘텐츠를 얻어야한다는 것입니다. 지금까지 나는이 솔루션으로만 제공했습니다 : 주어진 구문에서 파일 이름과 모드는 문자열로 지정되므로 항상 큰따옴표 내에 동봉해야합니다. 파일 콘텐츠가 const char *로 필요한 이유는 무엇입니까? std::string이 있는 경우, 다음과 같이 멤버 함수 c_str(이)를 사용하여 기본 const char*에 액세스할 수 있습니다. 읽기 및 쓰기. @std::ofstream 파일을 만드는 데 사용할 수 있습니다. 파일 시스템 작업의 경우 @std::filesystem을 참조하십시오. 그건 그렇고, 위의 코드 조각 / 예제를 사용하여 File.dat 파일을 만들었지 만 다시 읽을 수 없었습니다.

VS2017 및 VS2019를 모두 사용합니다. 오류는 없지만 내가 얻을 수있는 유일한 결과는 파일의 작업이 끝날 때마다 항상 파일을 닫아야한다는 것입니다. 파일의 내용과 링크가 종료된다는 의미입니다. 이렇게 하면 파일이 실수로 손상되는 것을 방지할 수 있습니다. 줄 23: 파일을 읽은 후 @data 지우지 않습니다. 내 아웃 파일에는 과다 3이 있습니다. 가능한 한 빨리 도와주시겠습니까? 나는 금요일에 경쟁에 갈거야. 나는 DevC ++ 4.9.9.2를 사용합니다 (그것이 도움이되는지 모르겠지만 미안하지 않는 것이 더 좋습니다) Mac에서 Xcode를 사용하고 있다고 가정하면 파일이 빌드 디렉토리에 생성됩니다.

Comments

No one has said anything yet.

Comments are closed.