2012-05-01 3 views

답변

2

나는 저를 위해 일한 해결책을 찾아 냈습니다. strcpy로했던 것과 같은 문제가 있다면 size()를 사용하여 문자열의 크기를 알아 낸 다음 while 루프를 사용하여 char 배열에 추가하십시오. 이것은 결국 나를 위해 일한 것입니다 :

문자 배열 data.name [30]을 가진 데이터 구조체 멤버가 있고 우리는 이름을 구성하는 두 단어가 있습니다 (첫 번째와 마지막). 우리는 그냥 strcpy로 char 배열에 추가 할 수 없습니다. 또한 프로세스에서 성을 잃어 버리기 때문에 문자열 스트림을 사용할 수 없습니다. 파일의 텍스트는 개행 문자로 끝나는 마지막 필드를 제외하고 구분 기호 번호 (로 구분 된 필드를 포함하는 이름 필드에 I이 사용 :.

/* we already declared an ifstream inputFile and opened it. */ 
while(!inputFile.eof()) 
{ 
    string temp; 
    getline(inputFile, temp, '#'); 
    int size=temp.size(); 
    int i=0; 
    while (i<size) 
    { 
     data.name[i]=temp[i]; 
     i++; 
    }  
} 

data.name[i]=0; 
inputFile.close(); 
5

strcpy()을 의미합니까? 내가 아는 strcopy()이라는 표준 기능은 없습니다. 또한 C++을 사용하는 경우 가능하면 복사 및 기타 문자열 조작을 처리하므로 std::string을 대신 사용하십시오.

+0

예, 즉 내가 무엇을 의미 – user1066524

+0

오류 C2664 :. ' strcpy ': 매개 변수 2를'std :: string '에서'const char * '로 변환 할 수 없습니다. – user1066524

+0

@ user1066524 : 함께 사용하지 말고'std :: string' _instead__strcpy'와'char *'를 사용해야합니다. – ildjarn

관련 문제