멋진 프로그래머 여러분, 안녕하세요. 나는 예를 들어 코드std :: cout의 리디렉션 범위
std::cout << "hello" << std::endl;
단어가 "안녕하세요"나는 리디렉션있어 파일에 기록됩니다 실행할 때 있도록 파일로 std::cout
을 리디렉션하도록 노력했습니다.
// Redirection.cpp
#include <iostream>
#include <fstream>
int main(int argc, char **argv) {
if(argc == 2){
std::cout << "Output file supplied, redirecting to output.txt" << std::endl;
std::ofstream out("C:\\Avner\\HUJI\\CPP\\ex2\\output.txt");
std::cout.rdbuf(out.rdbuf());
std::cout << "This file contains output of Redirection.cpp" << std::endl;
}
std::cout << "This should be displayed in console or in the output file, if supplied" << std::endl;
return 0;
}
내가 읽어 output.txt
를 기다리고 있었다 :
은 내가 followig 프로그램이
This file contains output of Redirection.cpp
This should be displayed in console or in the output file, if supplied
를 대신 만 읽
This file contains output of Redirection.cpp
나는 그림이 리디렉션 I 해당 스코프에만 적용되었고 어떤 외부 스코프에는 적용되지 않았습니다.
어떻게 해결할 수 있습니까? 필자가 필요로하는 동작은 출력 파일이 제공되는 경우에만 모든 인쇄가 콘솔 대신 해당 파일에 기록된다는 것입니다.
감사합니다. 무료 도움말 및 지원을 요청합니다. out
는 자동 저장 - 시간의 목적임을
아니요, 출력 객체가 범위를 벗어났습니다. – WhiZTiM
'std :: endl'이 수행하는 추가 작업이 정말로 필요합니까? '\ n '은 한 줄을 끝냅니다. –
안녕하세요. 나는 그렇게 생각하지 않는다. 그러나 그것이 그들이 수업에서 우리에게 물었던 것이다. 감사! – avneraggy