2016-12-01 2 views
-1

char*을 Managed C++의 텍스트 파일에 쓰려고합니다. 그런 다음이 파일을 다른 관리되지 않는 C++ 응용 프로그램에서 사용할 것입니다.CLI를 사용하여 파일에 char 버퍼를 쓰는 방법

이것은 내 코드입니다.

void DumpAllData(int buffSize, char* srs) 
{ 
    String^ fileName = "C:\\temp\\example.bin"; 
    StreamWriter^ sw = gcnew StreamWriter(fileName, true, System::Text::Encoding::ASCII); 

    for (int i = 0; i < buffSize; i++) 
    { 
     sw->Write(srs[i]); 
    } 
    sw->WriteLine(); 
    sw->Close(); 
} 

나는 주어진 char*에 대한 buffSize 통해 반복하고 파일을 쓰고 있어요. char*'\n'이있을 수 있습니다. 전체 파일을 작성한 후에는 모든 데이터가 한 줄에 있어야합니다. 하지만 메모장에서 파일을 열면 ++ 데이터가 여러 줄로 나옵니다.

LF 또는 CR도 char*과 함께 제공됩니다.

이 문제를 해결하는 방법에 대한 제안 사항이 있으십니까?

감사합니다.

+0

* "모든 데이터가 한 줄에 있어야합니다"* + * "LF 나 CR이 입력 내용에 개행 문자가있는'char *'"* =>와 함께 제공된다는 사실을 발견했습니다. 출력물에 개행 문자가 있습니다. 왜 처음에는 한 줄로 모든 것을 얻을 것으로 기대 했습니까? 출력 방법이 비효율적이고, 버퍼에서 UnmanagedMemoryStream을 인스턴스화하고, 파일에 대해 FileStream을 호출 한 다음,'ums-> CopyTo (fileStream);을 호출하십시오. ' –

+0

감사합니다. 이것은 소켓에서받은 데이터이므로 패킷의 내용을 수정하거나 변경할 수 없습니다. 대신 소켓 통신을 통해 다른 응용 프로그램으로 전송해야합니다. 이것이 모든 데이터가 한 줄로 인쇄되기를 기대하는 이유이므로 필요한 곳으로 다시 보낼 수 있습니다. – killer

답변

0

방금 ​​문제가 해결되었습니다. 파일을 한 줄씩 읽는 대신 한 바이트 씩 읽어서 내 소원으로 사용했습니다. 시간 내 주셔서 감사합니다.

관련 문제