C++ 파일 입/출력을 구체적 파일 명을 입력하는 것이 아닌, 파일 명이 저장된 변수를 통해서 할 수는 없나요?

조회수 1744회

C++ 초보입니다. 안녕하세요.

ifstream in ("C:\~~~~~\"Example.txt") 같은 형식이 아니라.

문자열 A = "Example.txt" 로 저장되어 있는 상태에서,

ifstream in ("C:\ ~~~~~\ A") 같은 형식으로 쓰는 방법이 혹시 없는지 궁금합니다.

제 검색 능력이 부족한 것인지, 구글 검색을 해 보아도 찾지 못해서 이렇게 질문을 남겨봅니다.

고민을 해 보면서 시도한 방법들인데, ("C:\~~\Desktop\"G); 라던지 ("C\~\Desktop"G); 를 이용한다던지, Define을 이용한다던지.. 모두 오류가 나 버리네요.ㅜㅜ

파일 내용을 받아와서 내용을 바꾸는 프로그램을 한 번 만들어보고 싶었는데, 여기에서 막히니 아쉽네요.ㅜㅜ

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • ifstream in ("C:\~~~" + A) 로 해보아도 안되나요? (지금 보니까 A가 따옴표 안에 들어가 있어서 문자열 취급인데요.) 엽토군 2018.9.30 19:29
  • ifstream.open("C:\\Users\\RYZEN\\Desktop"+A) 이런 식으로 작성하는 것 말씀이신가요? 이건 오류가 나 버리네요 :( 알 수 없는 사용자 2018.9.30 19:53
  • ("C:\\~~\\Desktop"A) 이런 식도 오류가 나고요.. 저도 그런 방법을 시도는 해 보았는데.. 알 수 없는 사용자 2018.9.30 19:54
  • 음... 사실 제가 C++은 모르는데... 끝에 \\ 붙여서 ifstream.open("C:\\Users\\RYZEN\\Desktop\\"+A) 는 해보셨나요? 왜냐하면 "C:\\Users\\RYZEN\\Desktop"+A = "C:\\Users\\RYZEN\\DesktopExample.txt" 라서 당연히 안될거거든요. 엽토군 2018.9.30 19:59
  • 답변 감사합니다. 그런데 missing terminating " character 오류가 나오면서 실패하네요. 알 수 없는 사용자 2018.9.30 20:01
  • 경고문 자체는 어딘가에 닫는따옴표 " 를 써야할 곳에 안썼다는 말이네요. 소스내 문자열들 확인해 보세요. 엽토군 2018.9.30 20:04
  • 음,, "+A) 식으로 써서 그런 것이 아닐까요? 알 수 없는 사용자 2018.9.30 20:05
  • 그냥 Example.txt") 식으로 썼을 때에는 문제가 없어서요. 알 수 없는 사용자 2018.9.30 20:05
  • 도와주셔서 감사합니다 :) 알 수 없는 사용자 2018.9.30 20:05
  • 문제가 해결이 안됐을것같은데... 제일 비슷해 보이는 스택오버플로 질문만 붙이고 물러가겠습니다. https://stackoverflow.com/questions/27504808/c-ifstream-with-a-variable-filename 엽토군 2018.9.30 20:15
  • 감사합니다. 제가 Dev 환경에서 해서 " +A) 같은 문법이 오류가 났었고, Codeblocks를 설치해 해 보니 잘 작동되네요! 감사합니다 ! 알 수 없는 사용자 2018.10.1 23:40

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)