2012-08-08 2 views
0

동적으로 문자열 배열을 만든 C++ 코드를 작성했습니다. 문자열 배열과 배열 자체의 항목 수를 모두 출력하는 함수를 작성했습니다. 다음으로해야 할 일은 배열 요소를 텍스트 파일에 저장하는 것입니다.하지만 필자가 작성한 파일을 열면 배열의 마지막 요소 만 나타납니다. 여기에 내가 뭐하는 거지의 샘플입니다출력 파일에 문자열 배열

int num_elem = ReadNumElem(); // my function that gets the number of elements in the array of strings 

string *MyStringArray = ReadNames(num_elem); // my function that reads a file and outputs the necessary strings into the array 

for(int i = 0; i < num_elem < ++i) { 
    ofstream ofs("C:\\Test\\MyStrings.txt") 
    ofs << MyStringArray[i] << endl; // I also tried replacing endl with a "\n" 
} 

나 C++에 새로운 오전, 그래서이 너무 간단한 경우 사과,하지만 지금은 시간이 검색되었습니다 내가 찾을 수 없습니다 해결책. 처음 두 함수는 관련이 없으므로 배열의 마지막 요소뿐만 아니라 모든 데이터가 나타나도록 텍스트 파일에 데이터를 출력하는 방법을 알아야합니다. 감사!

+0

간단한 대답은 표준 : : ios_base :: app'은'ofstream' 생성자로'mode' 인수 플래그로, 예를 들어,'지정해야한다는 것입니다 'std :: ofstream ofs ("C : \\ Test \\ MyStrings.txt", std :: ios_base :: out | std :: ios_base :: app), ' – oldrinb

+0

장기적으로 당신을 도울 해답 루프 외부에서 한 번 파일을 여는 것입니다. – oldrinb

답변

1

당신은 내가 한 줄 답변을 의미하지 않았다 루프

편집


죄송 외부 파일을 선언 할 필요가 있지만, 어쨌든 이제 완료되었습니다.

3

파일을 배열에서 열 때마다 해당 내용을 덮어 씁니다.

시도 :

ofstream ofs("C:\\Test\\MyStrings.txt");  
for(int i = 0; i < num_elem < ++i) { 

    ofs << MyStringArray[i] << endl; // I also tried replacing endl with a "\n" 
} 
ofs.close();