2017-12-29 10 views
-2

fin을 사용하여 .doc 파일을 읽은 다음 모든 텍스트를 문자열에 저장합니다. 문자열을 인쇄 할 때 알 수없는 문자를 보았습니다.C++의 fin은 .doc 파일로 작업합니까?

.doc 파일의 내용을 .txt 파일로 복사 한 다음 fin을 사용하여 .txt 파일을 읽을 때 모든 것이 정상적으로 작동했습니다.

제 질문은 핀이 .doc과 같은 복잡한 파일에서 작동하는지 아니면 .txt 파일에서만 작동하는지 궁금합니다. 내 .doc 파일 (그래픽 또는 기타 제외)에 텍스트 만 있었지만 글꼴은 calibri였습니다. fout이 텍스트를 .doc 파일로 인쇄하는 데 사용하는 글꼴이 아닙니다.

+0

왜'.doc' 파일을 읽을 필요가 있습니까? 그걸로 무엇을 할 계획입니까?정확한 정보를 추출하려면 어떤 정보가 필요합니까? ** 개선을 위해 ** 질문을 수정하십시오 ** –

답변

1

fistream을 사용하면 파일 내용을 읽을 수 있지만 파일 형식을 처리해야하는 복잡한 파일의 경우 C++ 라이브러리는 텍스트 내용을 자동으로 추출하지 않습니다. 파일을 모두 텍스트로 저장 한 경우 모든 스트림이 읽습니다.

1

기본적으로 fstream은 텍스트 모드와 .doc 파일의 모든 작업이 MS-DOC 이진 파일 형식을 사용합니다. 아마도 doc 파일을 읽고 인쇄하려고했을 때 이해할 수없는 문자 (아마도 바이너리 파일)를 보여 주었을 것입니다.

fstream에서 파일을 읽으려고하면 읽습니다.

fstream을 사용하여 바이너리로 .mp4 파일을 읽으려고했는데 파일을 읽었습니다 (다른 파일의 내용을 붙여 넣었 기 때문에 그 파일이 동일한 비디오로 판명 되었기 때문에 파일을 읽었습니다).

그래서 여러분의 질문에 대한 답변은 fstream의 모든 파일을 읽을 수 있지만 fstream은이 작업을 텍스트 또는 바이너리의 두 가지 방식으로 만 수행합니다. 파일 내용을 다른 것으로 복사하는 등의 작업을 수행하지 않는 한 모든 파일을 읽는 것이 그리 좋은 일은 아닙니다.

1

먼저 .docfile format을 이해해야합니다. 먼저 doc (computing) wikipage를 읽으십시오. 그것은 매우 복잡하기 때문에 (최소한 몇 달 동안 일해야 할 필요가 있습니다), 어느 정도는 문서화되어 있습니다.

전체적인 목표에 대해 다른 접근 방식을 고려해 볼 수 있습니다. 예를 들어 파일 (일부 Microsoft Word 소프트웨어에서 제공)을 구문 분석해야하는 경우 libreoffice을 사용하여 구문 분석 할 라이브러리를 제공하거나 다른 라이브러리 (예 : DocxFactory, wvware ...)를 찾을 수 있습니다 Word에 대한 일부 COM 인터페이스를 사용할 수 있습니다 (MicroSoft Word가 설치된 Microsoft Windows 운영 체제). 당신의 목표는 어떤 문서를 생성하는 경우

, 당신은 (아마도를 생성하는 LaTeX 또는 Lout 같은 일부 text formatter를 사용하여, (표준 인)을 PDF 형식을 고려, 또는 라이브러리 수도 예를 들어 cairo, PoDoFo, 등).

내 질문 (예 : .doc 등) 복잡한 파일과 지느러미 작품 BTW

, C++ standard IO 바이너리 파일을 읽을 수 있는지,하지만 당신은 그들에 대한 parser을 (그래서 당신을 작성해야 파일 형식을 정확하게 이해해야 함). open formats ~ proprietary formats을 선호합니다.

관련 문제