2012-02-01 3 views
0

일부 데이터가 File.But에 기록됩니다. 그러나 제대로 기록하지 않습니다. 코드 : 그것은 잘못 CFile를 사용하고 있기 때문에 아마 enter image description hereCFile 일부 가비지 값을 쓰기.

답변

2

로 파일을 보여줍니다

CString sFileName = "C:\\Test.txt"; 
CFile gpFile; 

    CString testarr[10] = {"Tom","Ger","FER","DER","SIL","REM","FWE","DWR","SFE","RPOP"}; 

    if (!gpFile.Open(sFileName,CFile::modeCreate|CFile::modeWrite)) 
    { 
     AfxMessageBox(sFileName + (CString)" - File Write Error");  
     return; 
    } 
    else 
    { 
     gpFile.Write(testarr,10); 
    } 

    AfxMessageBox("Completed"); 
    gpFile.Close(); 

. CFile::Write의 첫 번째 매개 변수는 파일에 쓸 바이트가있는 버퍼 여야합니다. 그러나 testarr의 각 요소는 문자열이고 문자열 자체는 바이트 시퀀스이므로 "버퍼 버퍼"와 비슷합니다.

대신해야 할 일은 testarr의 요소를 연결 한 다음 CFile::Write으로 전화하는 것입니다. 아니면 (아마도 더 실용적인) testarr 번을 반복하여 각 문자열을 한 번에 하나씩 인쇄하십시오 (예 : 특정 예를 들어, 당신이 찾고있는 무엇을해야 다음이이 작업을 수행하는 몇 가지 기본 방법이 될,하지만 난 MFC 정말 익숙하지 않은, 그래서 수

for(int i = 0; i < 10; ++i) 
{ 
    gpFile.Write(testarr[i], strlen(testarr[i])); 
} 

나는하지 않습니다 많은 도움을 받으십시오.