2010-03-10 6 views
0
ofstream osCtrs("cts.txt",ios::out); 
if (osCtrs.is_open()){ 
    for(unsigned ci = 0; ci < k; ci++){ 
     KMpoint& x = ctrs[ci]; 
     for (unsigned di = 0; di < dim; di++) 
     { 
      //osCtrs << x[di]; 
      osCtrs << "what is happening?"; 
     } 
    } 
    osCtrs.close(); 
} 

뭐가 잘못 되었나요? 파일이 생성되었지만 항상 비어 있습니다.은 C++을 사용하여 파일에 데이터를 쓸 수 없습니다

+0

물론 변수'k' 또는'dim'는 <0!입니다. 하지만 진지하게, 디버거를 사용하려고 했습니까? –

답변

0

코드는 kdim에 양수 값이 주어지면 정상적으로 작동합니다. 둘 다 0이 아니라고 확신합니까? 둘 중 하나가 0 이하이면, 프로그램은 실제로 물건을 출력하고있는 내부 루프에 결코 들어 가지 않습니다. 중단 점을 설정하고 코드를 단계별 실행하여 무슨 일이 일어나는지보십시오.

또한 ofstreamios::out을 지정할 필요가 없습니다.

+0

감사합니다. 지금이 질문을 닫을 수 있습니다. 이 문장이 너무 잘 작동하지 않기 때문에 생각합니다. // osCtrs << x [di]; 처음에 "x"는 float 유형이므로 다음을 사용해야합니다. osCtrs << fixed << setprecision (5) << x [di]; 어쩌면 주석이 잘 작동하지 않거나 컴파일러에 메모리가있을 수도 있습니다 !!! 그래서 나는 심지어 문장을 주석 처리했다, 그것은 여전히 ​​효과가 없었다. – JJgogo

+0

사실, 'dim'이 0보다 작은'int '인 경우,'di MSalters

관련 문제