Microsoft MVP성태의 닷넷 이야기
안녕하세요.. 파일 생성 처리 문제로 .... [링크 복사], [링크+제목 복사],
조회: 17367
글쓴 사람
생초보 (huss5210 at hanmail.net)
홈페이지
첨부 파일
 

안녕하세요 기초 수준이 초보라... 이상하게 계속 오류가 나거나
저장이 되더라도.. 파일이 구동이 되지 않아서.. 며칠째 같은 코드만 계속 치는거 같아서..
도무지 이해도 안되어서 이렇게.....

파일을 사이즈씩 vector담아서.. 그 데이터를 .... 저장하고 싶습니다.
ㅜㅜ;;;


-----------------------1

#include <stdio.h>
#include <string>
#include <iostream>
#include <fstream>
#include <sstream>
#include <iterator>
#include <vector>

using namespace std;

 
int main(int argc, char *argv[])
{

   std::ifstream in_file;
   std::ofstream out_file;

   vector<unsigned char *> sendI;
   vector<unsigned char *>::iterator sendIt;

  
   
  in_file.open("aa.mp3" , ios::in|ios::binary |ios::ate);
  out_file.open("bb.mp3", ios::out |ios::binary | ios::trunc);
     

     in_file.seekg(0,ios::end);
     int len = in_file.tellg();
     in_file.seekg(0,ios::beg);
  int check = 1024;
  int wilecout = len/check;
  int noreadcout = 0;
  int v_count =0;


      unsigned char *Orig = new unsigned char[check];


  int i=1;
        while ( i <= wilecout )
        {
    in_file.seekg(noreadcout-1,ios::beg);

    in_file.read((char *)Orig,check);
    sendI.push_back(Orig);

    noreadcout = check*i;
       i++;
        }
        
       v_count = len -noreadcout;

  if(v_count > 0)
     {
       in_file.read((char *)Orig,v_count);
    sendI.push_back(Orig);
     }


  out_file.write((const char*) sendI[i],check);
 
    cout << len << endl;
    cout << sendI.size() << endl;
  
 out_file.flush();
 out_file.close();

 in_file.close();
 
 return 0;
}



-----------------------------------------2
#include <stdio.h>
#include <string>
#include <iostream>
#include <fstream>
#include <sstream>
#include <iterator>
#include <vector>

using namespace std;

 
int main(int argc, char *argv[])
{

   std::ifstream in_file;
   std::ofstream out_file;

   vector<unsigned char *> sendI;
   vector<unsigned char *>::iterator sendIt;

  
   
  in_file.open("aa.mp3" , ios::in|ios::binary |ios::ate);
  out_file.open("bb.mp3", ios::out |ios::binary | ios::trunc);
     

     in_file.seekg(0,ios::end);
     int len = in_file.tellg();
     in_file.seekg(0,ios::beg);
     int check = 1024;
     int wilecout = len/check;
     int noreadcout = 0;
     int v_count =0;
 

        int i=1;
        while (    i <= wilecout )
        {
             unsigned char *Orig = new unsigned char[check];

             in_file.seekg(noreadcout,ios::beg);

             in_file.read((char *)Orig,check);
             sendI.push_back(Orig);
   
              //cout << sendI[1] << endl;

             noreadcout = check*i;
         i++;
        }
        
       v_count = len -noreadcout;

        if(v_count > 0)
     {
             unsigned char *Orig1 = new unsigned char[v_count];
 
 
         in_file.read((char *)Orig1,v_count);
             sendI.push_back(Orig1);
     }

       char *ttt = new char[len*2];

        for(sendIt = sendI.begin(); sendIt != sendI.end(); sendIt++)
     {        
             strcat(ttt,(char *)*sendIt);
     }

      out_file.write((const char*)ttt,len);
 
 
    cout << len << endl;
    cout << sendI.size() << endl;
  
    out_file.flush();
    out_file.close();

    in_file.close();
 
 return 0;
}

계속 그자리를 맵도는 것 같아서요..ㅜㅜ;;
혼자 보다가 보니까 이리저리 답을 구하기가 쉽지 않아서 이렇게 .. 글을 올려봅니다.









[최초 등록일: ]
[최종 수정일: 1/26/2010]


비밀번호

댓글 작성자
 



2010-01-26 06시23분
 이런 건 답을 알려드리는 것은 도움이 되지 않습니다. 사실 저도 이젠 나이가 들어서(!) ^^; C/C++ 코드가 눈에도 잘 안들어오고.

혹시, 도구를 사용하시나요? Visual Studio 같은.
가능하면 Visual Studio를 사용하시고요. 그 도구에서 제공하는 디버깅 기능을 사용하십시오. 정지점(Break Point)를 잡고 라인 단위로 코드를 실행하면서 변수의 값들을 하나 하나 추적하다 보면 자신이 원하지 않는 값으로 빠지는 경우를 잡아낼 수 있을 것입니다. (절대, 처음부터 printf 따위로 디버깅하려고 하지 마세요. ^^ - 물론 도움이 되는 경우가 있지만.)

또한, 디버깅이 잘 되는지 확인하기 위해서, 처음에는 텍스트 파일로 10byte 단위로 복사하는 것을 해보세요. mp3는 바이너리라서 복사가 잘 되고 있는지 테스트로 확인하기가 쉽지 않습니다.
 
kevin25
2010-01-26 09시35분
[생초보 ] 답변 감사드립니다.
[guest]

... 31  32  33  34  35  36  37  38  39  [40]  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
4887이경현9/4/201717560Windows server 2012 파일 없어짐 현상... [1]
4886질문자9/1/201719062disconnecteditem에 대하여 아시나요? [4]파일 다운로드1
4883솔솔8/30/201717003dataview에서 select한 index 가져오기 [1]
4882user8/30/201719062UI 변경 작업 여러개를 동시에 사용하려면 어떻게 해야되나요 ?? [7]
4884user8/31/201716307    답변글 [답변]: UI 변경 작업 여러개를 동시에 사용하려면 어떻게 해야되나요 ??파일 다운로드1
4881kmi8/30/201716370진행속도가 중간에 더뎌지는 문제가 있는데 해결할 수 있는 방법이 있나 궁금합니다. [3]
4880김호종8/29/201716744HTTP JSON POST 관련 질문 드립니다. [1]
4879aos8/27/201717611DateTime 표시할 때 포맷 설정시 밀리초까지 포함하는 법이 궁금합니다 [1]
4878heyh...8/25/201717277프로세스의 프로세스 찾기(?) [2]
4877강준8/24/201716637SQLite journal_mode=wal 관련하여 질문드립니다. [1]
4876heyh...8/23/201717183프로세스 초기화하기 [1]
4874ho8/22/201716270파일 확장자명을 이용해 파일의 실행 프로그램의 전체 경로를 얻어 올 수 있을까요? [1]
4875ho8/23/201717954    답변글 [답변]: 파일 확장자명을 이용해 파일의 실행 프로그램의 전체 경로를 얻어 올 수 있을까요? [1]
4873kmi8/21/201718949전역 변수를 쓰지 않고 여러 군데에서 같은 변수를 공용하는 방법이 궁금합니다. [4]
4872abcd8/18/201717357프로세스를 초기화 하는 명령어도 있나요? [1]
4871kmi8/17/201719245메모리 부족으로 종료되는 현상의 여러가지 이유가 무엇인지 궁금합니다. [2]
4870heyh...8/14/201717898프로그램 실행시 중복일 때 버튼 색깔 원래대로 돌리기 [1]
4868kmi8/4/201717287string[] 에 Reverse 적용방법 질문해봅니다 [3]
4867heyh...8/4/201716292EventHandler에 관한 [1]
486610년차8/3/201716874dsoframer axframer open시 기존 오픈되어있는 엑셀을 먹어버리는 현상 [1]
4865heyh...7/31/201718748클릭원스로 배포 한 프로젝트가 끝났는지 알 수 있는 방법 [8]
4864초보자7/28/201717907DllIImport질문 드립니다. [1]
4863다연아빠7/23/201718611전역 예외처리에 대해 질문있습니다. [3]
4861라르크7/17/201725272window form 예제 따라하는 중인데 12.3 서비스 응용 프로그램에서 진행이 안됩니다. [3]파일 다운로드1
4859heyh...7/10/201718770다른 환경에서 실행하기 [1]
4858heyh...7/10/201717908Clickonce update에 관한질문입니다. [1]
... 31  32  33  34  35  36  37  38  39  [40]  41  42  43  44  45  ...