반응형
1. c언어로 작성된 프로그램을 읽어서 화면으로 보여주는 프로그램을 작성하세요.
#include <stdio.h> #include <conio.h> #include <stdlib.h> void display(FILE* fp); //화면에 출력하는 함수 int main() { char fname[20], cExit; FILE* fp; do { printf("input file name : "); gets_s(fname, 20); fopen_s(&fp,fname,"r"); if (fp == NULL) { fprintf(stderr, "cannot open this file : %s \n", fname); } else { display(fp); } printf("\n\n Any key... or 'q' to exit..."); cExit = getchar(); } while ( cExit != 'q'); } void display(FILE* fp) { char c; while ((c = getc(fp)) != EOF) { putc(c, stdout); } }
2. 화면상에서 프로그램을 작성하고 그 내용을 test.cpp라는 파일에 저장하는 프로그램을 작성하세요.
//화면상에서 프로그램을 작성하고 그 내용을 test.cpp라는 파일에 저장하는 프로그램을 작성하세요. #include <stdio.h> #include <conio.h> int main() { FILE* fp; fopen_s(&fp, "Test.cpp", "w"); printf("Ctrl+z to exit \n"); printf("input codes : \n"); char c = 0; while ((c = getc(stdin)) != EOF) { putc(c, fp); } printf("Save in Test.cpp"); fclose(fp); }
3. getc()와 putc()를 이용하여 파일을 복사하는 프로그램을 작성하세요.
#include <stdio.h> #include <conio.h> #include <stdlib.h> int main() { FILE* fpSrc; FILE* fpDest; char caSrcFileName[20]; char caDestFileName[20]; //복사할 파일 열기 printf("복사할 파일명을 입력하세요(최대 20글자) :"); scanf_s("%s", caSrcFileName, 20); fopen_s(&fpSrc, caSrcFileName, "r"); if (fpSrc == NULL) { printf("원본 파일을 찾지 못했습니다. \n"); return 0; } //복사될 파일 만들기 printf("새로 만들 파일명을 입력하세요.(최대 20글자) :"); scanf_s("%s", caDestFileName, 20); fopen_s(&fpDest, caDestFileName, "w"); if (fpDest == NULL) { printf("새로운 파일을 만드는데 실패했습니다. \n"); return 0; } {//내용 복사하기 char temp; while ((temp = getc(fpSrc)) != EOF) { putc(temp, fpDest); } } //파일 닫기 fclose(fpSrc); fclose(fpDest); }
4. 파일을 읽어서 다른 파일에 한 줄씩 더 띄어서 저장하는 프로그램을 작성하세요.
#include <stdio.h> #include <conio.h> #include <stdlib.h> int main() { FILE* fpSrc; FILE* fpDest; char caSrcFileName[20]; char caDestFileName[20]; //복사할 파일 열기 printf("복사할 파일명을 입력하세요(최대 20글자) :"); scanf_s("%s", caSrcFileName, 20); fopen_s(&fpSrc, caSrcFileName, "r"); if (fpSrc == NULL) { printf("원본 파일을 찾지 못했습니다. \n"); return 0; } //복사될 파일 만들기 printf("새로 만들 파일명을 입력하세요.(최대 20글자) :"); scanf_s("%s", caDestFileName, 20); fopen_s(&fpDest, caDestFileName, "w"); if (fpDest == NULL) { printf("새로운 파일을 만드는데 실패했습니다. \n"); return 0; } {//내용 복사하기 char temp; while ((temp = getc(fpSrc)) != EOF) { putc(temp, fpDest); if (temp == '\n') { putc('\n', fpDest); } } } //파일 닫기 fclose(fpSrc); fclose(fpDest); }
5. 사용자가 빈 라인을 입력할 때까지 입력을 받아 파일에 쓰고, 다시 읽어서 화면으로 출력하는 프로그램을 작성하세요.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { FILE* fp; char buff[256]; //파일에 문자열 입력받기. fopen_s(&fp, "new file.txt", "w"); printf("아래에 내용을 입력하세요 (끝내려면 빈줄을 입력하세요.) \n"); gets_s(buff, 256); while (buff[0] != '\0') { fputs(buff, fp); fputs("\n", fp); gets_s(buff, 256); } fclose(fp); //입력받은 문자열 출력하기 fopen_s(&fp, "new file.txt", "r"); printf("입력하신 내용은 다음과 같습니다. \n"); while (!feof(fp)) { fgets(buff, 256, fp); if (!feof(fp)) { printf("%s", buff); } } fclose(fp); }
6. 키보드로부터 데이터를 입력받아 "test.txt"파일에 출력하고, 이를 다시 화면에 출력하는 프로그램을 작성하세요.
#include <stdio.h> #include <stdlib.h> int main() { FILE* fp; char buff[256]; //문장 입력받아 파일에 저장하기. fopen_s(&fp, "test.txt", "w"); printf("원하는 문장을 입력하세요. \n"); scanf_s("%s", buff,256); fprintf(fp, "%256s", buff); fclose(fp); //파일에서 문장 입력받아서 화면에 출력하기. fopen_s(&fp, "test.txt", "r"); printf("입력하신 문장은\n"); fscanf_s(fp, "%256s", buff, 256); printf("%s\n", buff); printf("입니다.\n"); fclose(fp); }
7. 파일에 구구단을 가로로 저장하고 다시 화면에 출력하는 프로그램.
#include <stdio.h> #include <stdlib.h> int main() { FILE* fp; //계산 결과를 저장. fopen_s(&fp, "Test.txt", "w"); for (int i = 1; i < 10; i++) { for (int j = 1; j < 10; j++) { fprintf(fp, "%2d*%2d=%2d", i, j, i*j); } fprintf(fp, "\n"); } fclose(fp); //화면에 다시 출력 int i, j, result; fopen_s(&fp, "Test.txt", "r"); for (int iCnt = 1; iCnt < 10; iCnt++) { for (int jCnt = 1; jCnt < 10; jCnt++) { fscanf_s(fp, "%2d*%2d=%2d", &i, &j, &result); printf("%2d*%2d=%2d ", i, j, result); } printf("\n"); } fclose(fp); }
반응형