C++에서 텍스트 파일을 읽거나 ifstream
/ofstream
과 함께 코드를 작성하는 코드를 작성했습니다. 파일이 성공적으로 열렸는지 확인하기 위해 .is_open
구성원 기능이 fstream
인 것을 추가하고 싶습니다. 그것은 메인 루프 내에서 올바르게 작동합니다. 그 때 나는이 목적을 위해 루프 외부 함수를 작성하고 main
내부를 호출하려고, 나는 다음과 같은 오류 있어요 : 메인 루프의 외부 점검을 할C++에서 함수 내의 ifstream/ofstream.is_open()을 확인할 수 없음
std::ios_base::ios_base(const std::ios_base&)
is private.
이 가능를? 방법? 내가 도대체 뭘 잘못하고있는 겁니까?
도와 주시면 감사하겠습니다. 아래 코드를 찾을 수 있습니다.
P. 저는 C++로 초보자입니다. 그래서 프로페셔널이 아닌 프로그래밍 방식을 보게되면 너무 과장하지 마십시오. 개선을위한 권장 사항은 환영 할만한 것이 아니지만.
#include <iostream>
#include <fstream>
using namespace std;
void check_opened(ifstream toget, ofstream togive){
if(toget.is_open()){
cout<<"able to open file(toread.txt)"<<endl;
}
else {
cout<<"failure"<<endl;
}
if(togive.is_open()){
cout<<"able to create/open a file(newone.txt)"<<endl;
}
else {
cout<<"failure"<<endl;
}
}
int main() {
ifstream toget;
ofstream togive;
toget.open("toread.txt");
togive.open("newone.txt");
check_opened(toget,togive);
toget.close();
togive.close();
return 0;
}
is_open 호출을했는지 여부에 관계없이 오류가 발생합니다. [mcve]를 만드는 일은 귀하의 가정에 도전적입니다. – chris
값으로'toget'와'togive'를'check_opened' 함수에 전달하고 있습니다. 그리고'ifstream'이나'ofstream'을 복사하는 것이 허용되지 않는 것 같습니다. 참조 또는 포인터로 전달하십시오. – gurka
@gurka, 고마워, 내가 참고로 사용하고 그것이 효과. – UserRR