2012-03-05 4 views
0

나는이 프로그램이 현재 디렉토리에있는 파일을 출력한다. 콘솔에없는 일부 텍스트 파일의 출력을 원합니다. 내 프로그램입니다 : - 사전에stdout 대신 파일에 쓰기

int main() 
{ 

     system("ls"); 
     return 0; 
} 

감사합니다!

+0

그런데 한 가지 방법이 동안이다 "out.txt"파일에 기록됩니다 리디렉션 후 표준 출력 할 파일

###stdio.h ###FILE *freopen(const char *filename, const char *mode, FILE *stream); int main() { char outputFilename[] = "out.txt"; freopen(filename, "w", stdout) system("ls"); return 0; } 

에 모든 출력을 표준 출력을 리디렉션하는 또 다른 기능이있다 터미널에서 실행 만하면됩니다. ./xyz> logfile.txt' – noMAD

답변

2

이미 system()를 사용하고, 이것은 이미 플랫폼에 따라, 단지 사용하는 쉘의 리디렉션 기능이기 때문에 - 즉,

system("ls > /home/you/thefile"); 
+0

@RolandIllig, 네 말이 맞아! –

+0

나는 이것이 fopen()보다 쉽다는 것에 동의하지만, C로 파일에 쓰는 방법의 표준 예제는 아니다. -1. – dwerner

1

이것은 당신이 당신의 출력을 대체 파일로 작성하는 방법입니다 파일에서 원하는 것을 선택하십시오. 다른 사람이 언급 한 것처럼 파일을 파일로 연결할 수 있습니다.

FILE *ofp; 
char outputFilename[] = "out.txt"; 

ofp = fopen(outputFilename, "w"); 

if (ofp == NULL) { 
    fprintf(stderr, "Can't open output file %s!\n", 
      outputFilename); 
    exit(1); 
} 

fprintf(ofp, "ls"); 
fclose(ofp); 
0

a는