아주 간단한 편집기를 쓰고 있습니다. 나는 프로그램을 stdin에서 읽은 다음 바로 지금 stdout으로 출력한다 (아래 코드 참조). 파일을 가져올 프로그램을 원한다면 명령에 따라 파일에 더 많은 텍스트를 인쇄하거나 추가하십시오. 나는 아직도 관련 질문을 읽은 후에 이것을 어떻게하는지 혼란 스럽다. scanf를 사용하여 파일을 읽은 다음 printf를 사용하여 동일한 파일에 인쇄합니까? 모든 설명은 크게 감사드립니다.간단한 C 텍스트 스캔 및 인쇄
#include <stdio.h>
#define MAX_LINES 10
char text[MAX_LINES][MAX_LINES];
int main(void){
FILE *infile;
infile = fopen("file.txt", "w");
//check for file
if(infile==NULL){
puts("Error--no file found");
}
int count, x, y;
printf("Enter to quit the program.\n");
for(count=1; count<MAX_LINES+1; count++){
printf("%d: ", count);
fgets(text[count], MAX_LINES, stdin);
}
for(x=0; x<count; x++){
for(y=0;text[x][y];y++){
putchar(text[x][y]);}
putchar('\n');
}
fclose(infile);
return 0;
//end program
}
거의 모든 편집자가 임시 파일을 작성한 다음 닫고 이전 파일의 연결을 해제하고 임시 파일의 이름을 바꿉니다. – stark
'scanf()'는 공백을 신경 쓰지 않지만 파일을 편집하는 사람들은'scanf()'를 사용하지 않을 것입니다. (네, 그렇다고해도 고생 할 수는 있지만 힘든 일이지만 보람이 없습니다.) 코드는 훨씬 더 합리적인 선택 인 fgets()를 사용하는 것을 보여줍니다. 선의 최대 폭에서 선의 수를 분리해야합니다. 임의로 긴 행을 처리하기 때문에 입력에 대해 POSIX ['getline()'] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/getline.html)에 대해 생각할 필요가 있습니다. ''infile' "을 쓰기 전용으로 열고'stdin'에서 실제로 읽습니다. –
infile에서 읽고 infile에 텍스트를 추가하는 방법이 있습니까? (stdout 대신?) –