이있는 폴더에 파일을 쓰기 Windows
에서는 괜찮을 것입니다.) !! 위와 같은 동적 경로 (특정 경로가 아닌)로 어떻게 작성할 수 있습니까? 감사!나는 성공적으로 예제를 실행 폴더에 파일에 쓸 동적 경로 C++
답변
"동적 경로"란 무엇을 의미하는지 확실하지 않습니다. 동적 경로는 이 동적으로 읽히는 경로입니다 (따라서 std::string
).
반면에 절대 경로와 상대 경로 인 을 혼동하는 것 같습니다. 파일 이름이 '/'
(Unix 하에서)으로 시작하거나 또는 '\\'
으로 시작하고 가능하면 "d:"
아래에 Windows 아래에 있습니다. 파일 검색은 파일 시스템의 루트 (Windows의 경우 지정된 드라이브에 있음)에서 시작됩니다. 다른 모든 경우에는 상대적입니다. 파일 검색은 현재 작업 디렉토리 인 에서 시작합니다. 귀하의 예에서 "/home/kingfisher/Desktop/TestWrite File/xml/kingfiger.txt"
및 "/xml/kingfisher.txt"
은 모두 절대 값입니다. 현재 작업 디렉토리 이 "/home/kingfisher/Desktop/TestWrite File"
이면 "xml/kingfisher.txt"
은 첫 번째 절대 경로로 지정된 파일을 찾아야합니다.
*path = "/xml/kingfisher.txt"
const char*
을 역 참조하고 내용을 수정하려고 시도 했으므로 올바르지 않습니다. 데이터가 const이므로 정의되지 않은 동작입니다.
그냥 시작하는 std::string
가 될 경로를 선언 : 나중에 당신이 표준 문자열에 원하는 다른 값을 할당 할 수 있습니다 그리고
std::string path = "/home/kingfisher/Desktop/TestWrite File/xml/kingfisher.txt";
그것은 operator=
동적으로 당신을 위해 그것의 내부 변경됩니다입니다 :
path = "my/new/path";
당신은 이전과 ofstream
이것을 사용하고 당신이 const char *
필요한 함수에 전달해야하는 경우 단지 path.c_str()
를 전달할 수 있습니다.
_ "이것은 역 참조이기 때문에 올바르지 않습니다. 귀하의 char * 및 원래 문자열의 첫 문자를 설정합니다 "_ - 사실 그것은'char const *'이고"정의되지 않은 동작 "--ness 플래그를"true "로 설정하는 것을 제외하고는 아무 것도 설정하지 않습니다. –
@paxdiablo 사실 'const char *'와'char const *'도 같은 생각이었습니다. 가변 데이터에 대한 상수 포인터 인'char * const'입니다. – Benj
그들은 그렇습니다. –
즉 그것을 절대 경로 수 있기 때문에 동적으로 당신이, 당신은 최고의 /
없애 상대해야 할 의미 경우 :
path = "xml/kingfisher.txt";
그냥이 파일이 현재 작업 디렉토리 때문에 상대적입니다 점에 유의를 이 기능을 사용하려면 /home/kingfisher/Desktop/TestWrite File
으로 설정해야합니다. 당신이 원하는 때마다
, 동적으로, 당신은 변하기 쉬워,을 의미하는 경우에 당신은 변경할 수 있습니다 다음 const
는 단순히 데이터 포인터 뒤에 을 변경하도록 허용하지 않는 것을 의미
const char *path = "/tmp/dummy";
:
path = "/home/.profile"; // Note path, NOT *path
. 원하는대로 포인터 자체를 변경할 수 있습니다.
- 1. Java로 파일에 쓸 때 파일을 폴더에 저장할 수 없습니다.
- 2. 새 파일에 쓸 때 전체 경로 자동 생성
- 3. 동적 C# 코드 실행
- 4. PHP로 파일에 쓸 수 없음
- 5. 실행 파일이있는 폴더에 쓰기
- 6. C# 폴더에 쓸 때 Windows 서비스 액세스가 거부되었습니다.
- 7. 파일에 쓸 수 없습니다.
- 8. C++ forstream은 파일에 쓸 수 없습니다.
- 9. 응용 프로그램 실행 경로 C#
- 10. Perl. 나는 파일에 쓸 수 없다. 파일이 비워져 있습니다.
- 11. 파일에 쓸 쓸모없는 일
- 12. 파일에 쓸 때 UnicodeEncodeError
- 13. 파일에 쓸 키 입력
- 14. 레일스가있는 new.AjaxRequest의 동적 경로
- 15. 파일에 쓸 수 없습니다
- 16. 실행 경로
- 17. Windows의 C++ : system() 호출의 공백이있는 실행 경로
- 18. 파일에 쓸 수 없습니다.
- 19. 사전에 '\ n'을 파일에 쓸 때
- 20. 텍스트 파일에 쓸 수 없습니다.
- 21. 파이썬 하위 프로세스 실행 스크립트가 파일에 쓸 수 없음
- 22. FTP 나는 성공적으로 내 FTP에 연결 한
- 23. 파일에 쓸 때 액세스가 거부되었습니다. 왜?
- 24. puts가 파일에 쓸 것이라고 예상합니다.
- 25. plist 파일에 쓸 수 없습니다. iOS
- 26. 파일에 쓸 때 NSDictionary를 암호화하려고합니다.
- 27. 상위 폴더에 스크립트 실행 안함
- 28. 파일에 쓸 변수를 php에 보내야합니다.
- 29. plist 파일에 쓸 수 없습니다
- 30. http 모듈을 폴더에 다시 쓸 수 있습니까?
잘못하면 파일을 여는 데 실패 했습니까? '/ xml' 디렉토리는 존재하지 않을 수 있으며'ofstream' 생성자는 누락 된 디렉토리를 생성하지 않습니다. – hmjd
"잘못되었습니다"..? 그리고 "동적 경로"란 무엇입니까? 어쩌면 당신은'x' 앞에'/'를 두지 않고 상대 경로라고 부를 것입니다. 아마도 여러분은 여러분이 생각하는 작업 디렉토리에 없을 것입니다. –