2016-12-18 1 views
0

현재 과제를 수행하고 있으며 파일 주소를 함수 매개 변수로 사용하지 않고 파일로 출력하는 방법을 알아 내려고 노력하고 있습니다. 포인터 및이 함수는 클래스에서 사용하도록 선언 할 것입니다. 그러나 내가 만든 새 프로젝트에서 샘플 함수를 빌드하려고하면 "시스템이 지정된 파일을 찾을 수 없습니다"라는 오류가 발생합니다. 내가 솔루션을 청소하고 다시 빌드, 실패한 빌드를 시도하고 실행하려고했을 때, 나는 여전히 같은 오류가 있어요. 다음은 내 기능을 단순화 한 것입니다.시스템에서 지정된 오류 및 ofstream 함수를 찾을 수 없습니다.

#include <iostream> 
#include <fstream> 

using namespace std; 


int main() { 

    void Export(int data) { 
     ofstream out("structures_initial.txt"); 
     out << data << endl; 
     return; 
    } 

    for (int i = 0; i < 10; i++) { //I declared i's type but still the same 
     Export(i); 
    } 

    return 0; 
} 

이 오류의 원인은 무엇인지 확실하지 않으며 내 기능 내보내기가 의미가 있습니까? 내가 생각하기에 ofstream을 호출하면 새로운 출력 파일을 만들어서는 안되며 현재 파일을 열고 작성해야하지만이 오류로 인해 확인할 수 없습니다. 아마도 내가 잘못된 것을했기 때문일 수 있습니다 (인터넷에서이 오류를 찾았습니다. 여러 가지 이유가 있기 때문에 코드에서 문제를 볼 수 없기 때문에 수정할 수 없습니다. 이 문제를 해결하도록 도와 주시면 기쁘게 생각합니다.

+3

1 참조 (추가)하지 C++에서 지원됩니다. 2)'ofstream'이 파일을 찾지 못하면 - 일반적으로 그것을 만듭니다. 3) VS 내에서 프로젝트를 실행할 때 실행할 수있는 위치는 출력 디렉토리와 동일하지 않습니다 **. 따라서 파일이 잘못된 위치에 생성 될 것으로 예상 할 수 있습니다. –

+1

파일을 추가하는 중에 이미 오류가 발생했기 때문에 http://stackoverflow.com/questions/2393345/how-to-append-text-to-a-text-file-in-c – doctorlove

+0

파일에 추가하려고합니다. 프로그램에서 컴파일러 설정에 문제가있을 수 있습니다. – tly

답변

0

내부에 정의 된 기능을 갖도록 코드를 재정렬 할 수 있습니다. 을 추가하면 원하는 파일을 알 수 있습니다. 그렇지 않으면 당신이 말하는 내용과 반대되는 이전 내용을 파괴 할 것입니다. "ofstream을 호출하면 새로운 출력 파일을 만들어서는 안되며 현재 파일을 열어서 현재 파일을 열어서 쓰기를해서는 안됩니다."

ofstream은 현재 디렉토리에서 열려고 시도합니다. - 쓰기 권한이 없을 수도 있습니다. 당신은 IOS를 사용하는 것을 잊지해야

#include <iostream> 
#include <fstream> 

using namespace std; 

void Export(int data) { 
    ofstream out("structures_initial.txt", std::ios_base::app); 
    out << data << endl; 
    return; 
} 

int main() { 
    for (int i = 0; i < 10; i++) { 
     Export(i); 
    } 
} 
+0

주머니에서 기능을 선언 한 것이 수치 스럽다는 것을 깨닫는 솔루션에 감사드립니다. 지금 일하고있다. 주 외부에서 함수 선언을 가져 오려고 시도했지만 프로그램이 실행 된 후에는 출력 파일에 아무 것도 쓰지 않았습니다. 하지만 ios_base :: app를 사용할 때 효과가 있었지만 강의에서 배웠던 것이 아닙니다. 이제 std :: ios_base :: app를 살펴 보았고 꽤 이해할 수 있습니다. 그런데 왜 처음부터 작동하지 않았습니까? – morpheus

+0

충분한 정보를 제공하지 못했습니다. 파일을 찾을 수 없다는 것은 코드를 실행 한 방법/위치에 달려 있습니다. – doctorlove

+0

이터레이터에 대해 생각할 때, 처음에는 이것을 보았 기 때문에 혼동하지 않아야합니다. 또한 이것은 배치를 포함하는 첫 번째 파일 출력 이었기 때문에 iterator를 움직이면 항상 첫 번째 파일을 덮어 쓰지는 않지만 처음에는 반복자가 없었던 것처럼 아무것도하지 않는다고 가정하고있었습니다. – morpheus

0

: 응용 프로그램 귀하의 예제에 지정된대로 자세한 내용

#include <iostream> 
#include <fstream> 

using namespace std; 

void Export(int data) { 
    ofstream out("structures_initial.txt", ios::app); 
    out << data << endl; 
    return; 
} 

int main() { 



    for (int i = 0; i < 10; i++) { //I declared i's type but still the same 
     Export(i); 
    } 

    return 0; 
} 

는, 함수 내에서) 기능을 C++ Files and Streams

+0

답장을 보내 주셔서 감사합니다. 의사와 두 분 모두 제게 문제를 아주 분명하게 보여 줬습니다. – morpheus

관련 문제