결과를 .txt
파일로 출력하려고하면 프로그램이 예기치 않게 중단됩니다.파일 출력시 프로그램이 중단됨 C++
기본적으로 학생 목록을 .txt
파일에 저장하고 나중에 편리하게 검색하려고합니다. 내 프로그램은 값을 변수로 저장할 수 있지만 출력 파일에 저장하려고하면 프로그램 자체가 충돌합니다.
이
내 코드//STUDENTS CLASS
char** studentNames;
int numberOfNames;
void Students::setNumberOfNames(int namenumbers) // Takes in the number of student names to store
{
numberOfNames = namenumbers;
}
void Students::setStudentNames() // Takes a number of student names and stores them.
{
char studentinput[128]
studentNames = new char*[numberOfNames];
for (int i=0; i<=numberOfNames; i++)
{
studentNames[i] = new char[128];
cout << "Student " << i << ": " << "\n";
cin.getline(studentinput, sizeof(studentinput));
strcpy(studentNames[i], studentinput);
}
}
//MAIN CLASS
Student s;
int nums;
int main()
{
cout << "How many names would you like to store? " << endl;
cin >> nums;
s.setNumberOfNames(nums):
s.setStudentNames();
for(int i=0; i<=s.numberOfNames; i++)
{
cout << s.numberOfNames [i] << "\n"; // THIS WORKS FINE! DOES WHAT I SAY :)
}
// THIS IS WHERE IT CRASHES. I TRY AND STORE THE NAMES INTO THE `.txt` FILE.
//IF YOU WANT TO STORE 3 NAMES, IT WORKS FINE, BUT IF YOU WANT TO STORE LIKE
//12 NAMES THE WHOLE THING CRASHES. WHEN I COMMENT OUT THE BOTTOM BLOCK
//OF CODE THE PROGRAM WORKS FINE, BUT I WANT TO STORE THE NAMES.
ofstream outputFiles ("example.txt");
if(outputFiles.is_open())
{
for(int i=0; i<=s.numberOfNames; i++)
{
outputFiles << s.studentNames [i] << "\n";
}
}
}
학생의 선언을 보여주십시오. "충돌"은 무엇을 의미합니까? 특정 오류를 보여주십시오. 디버거를 사용하는 방법도 의지 할 시간. – OldProgrammer
'std :: string'을 사용하면 인생이 훨씬 쉬워 질 것입니다. – shuttle87