2014-12-10 8 views
-2

이 오류가 발생합니다. 첫 번째 줄과 두 번째 줄에, 그것은 'strcpy를'에 대한 호출에 대한 일치하는 기능은 내가 잘못된 처리기 지시문을 사용하여 확신 메신저, 내가strcpy에 대해이 오류가 발생했습니다.

void writeStudents(vector<student> &studentVector){ 
ifstream studentinfo; 
studenttowrite allinfo; 
studentinfo.open("students.bin"); 
for (unsigned int x=0 ; x<studentVector.size(); x++) { 
    allinfo.StuNo = studentVector[x].StuNo; 
    strcpy(allinfo.FirstName, studentVector[x].FirstName); 
    strcpy(allinfo.LastName, studentVector[x].LastName); 
    allinfo.major = studentVector[x].major; 
    allinfo.college = studentVector[x].college; 
    allinfo.Age  = studentVector[x].Age; 
    allinfo.Gpa  = studentVector[x].Gpa; 
    studentinfo.write(reinterpret_cast<char *> 
        (&studentVector[x]), sizeof(student)); 
} 
+2

'studenttowrite'및 'student'유형을 표시하십시오. –

+1

'std :: strcpy'는 ''에 있습니다. 그러나 C 스타일 문자열 대신에''의'std :: string'을 사용하는 것을 고려해보십시오. 그들은 다루기가 훨씬 쉽습니다. – Wintermute

+0

@Wintermute가 암시 하듯이, 당신은 include를 잊어 버릴 수도 있습니다. 포함 된 내용도 함께 보여주십시오. 다음 번에 MCVE 예제 (http://stackoverflow.com/help/mcve)를 만들어보십시오. –

답변

0

하여 사용하려면> 사용법 #include에게 < fstream를 사용하고 있습니다이야, 말한다 std::strcpy()의 인수 (유형 studentallinfo.FirstName, allinfo.LastName을 무엇인지 모르고) 또한

#include <cstring> 

: fstream 포함 std::strcpy() (상당의 C strcpy()) 기능을 사용하면 cstring를 포함해야합니다, 충분하지 않습니다 char*const char*으로 변환 가능해야합니다.

+0

'std :: strcpy'가되어야한다고 추가하면됩니다. – Quentin