2012-09-11 2 views
0

각리스트가 텍스트 파일로 저장됩니다 (두 개의 정수 목록 추가) 연결하려는 프로그램을 만들려고합니다. 나는 C++ 프로그램이 list1.txt와 list2.txt를 열길 원한다.파일을 찾을 수없는 C++ 코드

나는 실제로 작동시킬 수 없다. 나는 list1을 찾을 수없는 출력을 얻고 있지만 list1과 list2라는 두 개의 정수리스트를 두 개 놓았다.

#include <iostream> 
#include <fstream> 
#include <ostream> 

using namespace std; 

int main() 
{ 
    ifstream findlist1("list1.txt", ios::in | ios::binary); 
    if(!findlist1) 
    { 
     cout << "Cannot find list 1.\n"; 
     return 1; 
    } 
    ifstream findlist2("list2.txt", ios::in | ios::binary); 
    if(!findlist2) 
    { 
     cout << "Cannot find list 2.\n"; 
     return 1; 
    } 
    ofstream out("list3out.txt", ios::out | ios::binary); 

    if(!out) 
    { 
     cout << "Unable to output file "; 
     return 1; 
    } 

    out << in1.rdbuf(); 
    out << " " << flush; 
    out << in2.rdbuf(); 

    return 0; 
} 

EDIT = 해결 방법 :

내 파일은 절대 사용하려고 할 수 있습니다,있는 test1.txt라고했다, 따라서 코드가 잘 보이는 test1.txt.txt

+0

숙제 인 경우 이미 태그를 지정하고 이미 시도한 유형을 설명해야합니다. –

+0

파일 확장명을 일치시켜야합니다. 코드에서'.txt' 확장자를 사용하는 경우 파일에도 확장자가 있어야합니다. –

+0

팁, 감사합니다. 텍스트 파일은 적절한 .txt 확장명을 갖고 있지만 여전히 작동하지 않습니다. –

답변

2

으로 프로그램에 게재되었다 경로를 사용하거나 실행 파일의 같은 디렉터리에 파일을 넣으십시오.

+0

파일이 항상 같은 디렉터리에 있었으므로 전체 경로를 사용했지만 여전히 이익. 전체 경로 C : \ user \ admin \ desktop \ code \ –

+0

@TimothyFord 코드의 전체 경로? 아니면 프로젝트? 아니면 실행 파일? –

+2

@TimothyFord : 백 슬래시를 경로 구분 기호로 사용하는 경우 이중 백 슬래시로 이스케이프 처리하거나 대신에'/'를 사용하십시오. –

0

Visual Studio를 사용하는 경우 모든 상대 경로는 프로젝트의 working directory을 기준으로합니다. 기본값은 프로젝트 디렉토리 인 것 같습니다. C:\SolutionX\ProjectY\Build\ProjectY.exe에서 "file.txt"경로를 열려고하면 Windows에서 C:\SolutionX\ProjectY\file.txt을 찾습니다. 이 디렉토리를 변경하려면 프로젝트의 구성 등록 정보에서 디버깅의 "작업 디렉토리"로 설정하십시오.

Visual Studio에서 실행 파일을 실행하는 대신 수동으로 실행 파일을 두 번 클릭하면 작업 디렉터리가 현재 위치가됩니다. 명령 행에서 프로그램을 실행하는 경우 작업 디렉토리는 명령 행에서 작업 디렉토리가됩니다.

+0

실행 파일을 클릭하면 프로그램이 여전히 3 번째 텍스트 파일을 만들지 않습니다. Visual Studio 2010 명령 프롬프트를 통해 실행하고 있습니다. –

관련 문제