문제

cmd.exe에서 "copy c : hello.txt c : hello2.txt"명령을 실행할 수 있으며 잘 작동했습니다. 그러나 C 프로그램에서는이 코드를 실행하고 다음과 같은 오류를 얻었습니다.

#include <iostream>

using namespace std;

int main()
{
    system("copy c:\hello.txt c:\hello2.txt");
    system("pause");

    return 0;
}

출력 : 시스템은 지정된 파일을 찾을 수 없습니다.

여기서 무슨 일이 일어나고 있는지 아는 사람 있나요?

도움이 되었습니까?

해결책

내부 C 문자열 (및 동일한 탈출 규칙을 사용하는 몇 가지 다른 언어), \ 해야한다 \\ 탈출 캐릭터이기 때문에. 정상 텍스트로 인쇄 할 수없는 문자를 다음과 같이 입력 할 수 있습니다.

  • 탭 문자 \t.
  • 캐리지 퇴행 캐릭터 \r.
  • Newline 캐릭터 \n.
  • 내가 자세히 다루지 않는 다른 사람들.

부터 \ 탈출 캐릭터로 사용되며, 우리는 실제 '\' 문자열로. 이것은 시퀀스로 수행됩니다 \\.

그러므로 당신의 라인은 다음과 같아야합니다.

system("copy c:\\hello.txt c:\\hello2.txt");

이것은 때때로 다음과 같은 명령으로 모호한 오류로 이어질 수 있습니다.

FILE *fh = fopen ("c:\text.dat", "w");

어디에 \t 실제로입니다 tab 문자와 열려고하려는 파일은 다음과 같습니다.

            :이자형엑스..

다른 팁

또는 모든 Windows 기능은 UNIX 스타일 슬래시를 지원합니다.

system("copy c:/hello.txt c:/hello2.txt");

어떤 사람들은 이상한 ''를 발견하기가 더 쉽기 때문에 이것을 선호합니다.
그러나 메시지 에이 경로를 표시하면 Windows 사용자를 혼동 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top