안녕하세요, 어서 오세요
네 이번 강의에서는 이전 과제에 대한
솔루션을 제공하고자 합니다 소문자 문자를 포함하는 파일을 대문자
문자를 포함하는 파일로 변환하는 것이죠
네 그동안 임시 파일을 생성하겠습니다 이름
변경과 삭제 등등을 해야 하죠
thepogram의 최종 결과물은 파일이 되겠군요
파일에서 읽겠습니다 이미 대문자로 변환된 거죠
코드블록을 불러오죠 프로젝트 생성
새 프로젝트 콘솔 응용 프로그램
go c 소문자 파일 변환이라고 하죠
이걸 메인 요리로 삼을 거예요 C요
네 네 표준 io 헤더를 생성해야 해요
fopen 등을 써서 읽고 쓸 거니까요
그래서 저는 항상 맨 앞에서 파일을 열거해요
파일 이름에 대해 상수를 정의할 거예요
이걸 정의라고 하죠
이번엔 테스트를 하죠 문자요
File name은 모두 대문자로 하죠
그런 컨벤션이 좋아요
그런 다음 우리 프로젝트에서 파일 이름을 실제로 크리크리할 거예요
제 파일을 다운로드 디렉터리에 저장해요
마이프로젝트가 저장된 곳이죠
이 경우엔 프로젝트별 소문자 변환 파일이죠
같은 디렉터리에 놓을게요
IDE에서 실행할 수 있게요
새 텍스트 파일을 만들 거예요
이 테스트의 이름을 정할게요 문자요
그걸 불러오겠습니다 소문자와
대문자 문자도 좀 넣고요
제이슨이 테스트한다고 치죠 좋아요, 좋아요 어떤 테스트든 어떤 건 대문자이고
어떤 건 소문자예요 이건 항상
대문자죠 또 다른 도전입니다
됐어요
이 파일의 최종 결과는 테스트가 되겠죠 대문자로 된 txt파일이요
하지만 약간은 대문자와 소문자로 저장할 거예요
이제 생성된 파일로 읽고
쓸 수 있어요
네 네 몇 가지 파일 포인터를 만들게요 파일 대소문자, 대문자
파일 *fp라고 하죠
네 네 그걸 null로 초기화하고 다른
파일을 생성할 거예요 포인터스타 fp1 그리고 역시 null이죠
다시 한 번 여기 두 개가 필요해요 개별 파일을
읽고 쓸 거니까요 근본적으로 임시 파일이죠
네 문자 변수도 생성할 거예요 fgetc를 이용해 읽을
수 있는 문자 변수가 되겠죠
그리고 이것도 null과 동일하게 두죠 혹은 더 낫게요
그냥 빈 문자열로 두죠
네 네 가장 먼저 해야 할 일은 첫 번째 파일을 위한
읽기 모드의 파일을 여는 겁니다 그건 fp죠 두 번째 파일은 임시 파일이 될 겁니다
fp = fopen이라고 할게요
Thefile name test를 사용할게요 문자요
파일 이름, 읽기 전용을 열게요
이건 null이라는 걸 메이저제어로 만들게요
fpequal이 null이면 1을
반환하라고 할 거예요
이제 임시 파일을 만들게요.
임시 파일을 생성할게요
이 경우엔 파일을 작성할 거예요
fp1 포인터를 사용해 fopen이라고 할게요
이건 그냥 신고할게요 존재하지 않으면 생성할
거예요
그런 다음 w를 입력하죠 왜냐하면 거기에 write
only을 쓸 거니까요
제가 여기서 하려는 건 fp1이 null과
같지 않게 하는 거죠
fp1이라고 입력할게요
Null이면 마이너스 1을 반환하는 거죠
읽기 파일과 쓰기 파일 두 개를 열었어요
임시 파일에 쓰려고 쓴 거예요
네 다음으로 할 일은 파일을 읽어 모든 대문자를
쓰는 겁니다
네 읽기 위해 while 루프를 추가하고
이렇게 말하고 싶어요 : 데이터 형식 ch가 fgetc와 같을 때 시험지를
읽어 볼게요 fp와 제가 원하는 건 파일 끝을 누르지 않는 거죠
not = eof라고 할 수 있죠
Eof는 특별한 상수예요
while 루프 안에서 제가 읽는 글자가 소문자인지 확인하고
싶어요
네 if는 소문자 ch라고 하고 소문자 문자를
찾으면 그 문자를 대문자로
설정하고 싶어요
ch = ch 마이너스 32라고 쓸 수 있어요
이건 문자를 대문자로 변환할 거예요
네 그런 다음 변환이 되든 안 되든 대문자든 아니든 간에
임시 파일에 작성해야죠
fputc라고 할 수 있어요
그리고 제가 쓰고 싶은 캐릭터와 파일 포인터인 fp1만
입력하면 돼요
그래서 한 캐릭터를 읽을 때마다 임시 파일에 써요
소문자라면 대문자로 변환하고 작성할 거예요
네 while 루프의 끝은 이렇습니다 테스트의
모든 문자가 담긴 임시 파일이 있어요 대문자로 쓰여 있어요
읽기와 쓰기는 둘 다 끝났어요
fclosefp와 fclosefp1이라고 할 수 있죠
이제 제 임시 파일의 이름을 제 테스트에 다시 붙일게요 텍스트 파일요
새로 이름 짓기 함수를 호출하고 temp라고
할 수 있어요 문자 이름을 바꾸고 싶어요
제가 원하는 건 테스트예요 파일 이름인 제 상수를
사용하죠
아직 임시 파일이 생성돼 있어요
임시 파일을 삭제하고 싶어요
임시 파일을 제거하세요
여기서 오작동을 호출해 임시로 전달할 수 있어요 문자요
마지막으로 하고 싶은
건 테스트 내용을 프린트하는 거예요 대문자로 변환되는 텍스트 파일이죠
fp를 닫는 대신에요 그건 테스트를 가리키거든요 지금은 닫을 수 없어요 fp1을
닫을 수 있어요 fp1은 임시였으니까요
테오네의 이름을 개명하고 지울게요
사실 닫아야 해요 이름을 다시 지었거든요
fp를 닫아야 해요
43번째 줄에서 다시openfp를 쓸 거예요 내용을 읽고 출력하고
싶거든요
fp fopen 파일 네임 orsirm file name을 써서 읽어요
그냥 r이라고 할게요
다시, null이 아닌 메이저링을 하고 싶어요
토눌이 같다면 환불하고 싶어요
반성 1이라고 말하고 싶네요
제가 입력할 수 있어요
여기서 데이터를 읽고 프린트하고 싶어요
while 루프를 또 할 수 있어요
네 아직 아무것도 프린트 안 했어요
그냥 이렇게만 할 수 있죠 ch = fgetc fp = eof가 아니라요
우리가 하려는 건 ch를 출력하는 거예요
% c ch라고 하면 다 된 거예요
네 그리고 다시 마지막에 마지막 파일인 fp를 닫을 거예요 fp는 null과
같고 fp1도 null과 같다고 설정해야죠
잘 구축되도록 하죠
다 됐어요
컴파일해서 세미콜로닌을 넣을 수 있죠 54줄에∙∙∙ 저기 콜론이 있네요
코드를 다시 살펴보면 몇 가지 파일 포인터를
생성할 수 있어요
우리에겐 상수가 있어요
파일 하나를 열었어요
우린 그걸 읽었죠
지금 읽듯이 임시 파일로 쓰죠
그런 다음 임시 파일을 삭제하죠
네 네 읽어오는 파일과 임시 파일을 지워야 합니다 이름과 제거를
다시 지워야 하니까요
네 이미 열려 있는 함수나 파일에서 이름을 바꾸거나 제거할 수 없어요 그래서
닫아야 하죠
그런 다음 다시 열고 데이터를 프린트하죠
이걸 실행하죠
모든 캐릭터 정보가 출력된 결과물을 볼 수 있을 거예요
이 프로그램을 실행하면 모든 걸 대문자로 인쇄할 거예요
그걸 실행하면 모든 걸 대문자로 출력하죠
온디스크 파일을 보면 테스트를 볼 수 있어요 텍스트, 이제 모든 걸 대문자로
규제하는 걸 볼 수 있죠
만약 소문자를 더 바꾸고 싶다면요
여기서 저장하면 소문자로 프로그램을 실행하면
모든 걸 대문자로 변환하죠
다시 한 번 이걸 실행하면 대문자로 인쇄해요
이걸 보면 다 대문자예요
소문자 문자를 대문자로 바꾸는 멋진
프로그램이죠
꽤 간단합니다. 중요한 기능들을 사용하고
있습니다. 파일 포인터 fopen이요.
멋진 Fclose 제거와 이름 바꾸기를 사용하죠
fopen과 fgetc도요
질문 있으면 메일로 보내 주세요
이 원본 파일은 zipfile로 저장할 테니 한번 보세요
고마워요