쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 16-2
5.
#include <stdio.h>
int main(void) {
FILE* fp = NULL;
FILE* fpout = NULL;
char buffer[1000] = {
0
}
;
char name[1000] = {
0
}
;
int korean, math, english;
fp = fopen("sample.txt", "r");
if (fp == NULL) {
printf("파일 열기 실패\n");
return 0;
}
fpout = fopen("sample1.txt", "w");
if (fpout == NULL) {
printf("파일 열기 실패\n");
return 0;
}
while (fgets(buffer, 1000, fp) != NULL) {
sscanf(buffer, "%s %d %d %d", name, &korean, &math, &english);
fprintf(fpout, "%s", name);
fprintf(fpout, "%10.2f\n", (korean + math + english) / 3.0);
}
fclose(fp);
return 0;
}
6.
#include <stdio.h>
#include <ctype.h>
int main(void) {
FILE* fp = NULL;
int c, count = 0;
char file1[100];
printf("파일 이름을 입력하시오: ");
scanf("%s", file1);
if ((fp = fopen(file1, "r")) == NULL) {
fprintf(stderr, "원본 파일 %s을 열 수 없습니다.\n", file1);
exit(1);
}
while ((c = fgetc(fp)) != EOF) {
if (isprint(c))
count++;
}
fclose(fp);
printf("문자의 개수는 %d\n", count);
return 0;
}
7.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
FILE* fp1;
char file1[100];
char buffer[1000];
printf("파일 이름을 입력하시오: ");
scanf("%s", file1);
if ((fp1 = fopen(file1, "w")) == NULL) {
fprintf(stderr, "파일 %s을 열 수 없습니다.\n", file1);
exit(1);
}
while (1) {
char* p = gets(buffer);
if (p == NULL)
break;
fprintf(fp1, "%s\n", buffer);
}
fclose(fp1);
return 0;
}
8.
#include <stdio.h>
int main(void) {
FILE* fp1 = NULL;
FILE* fp2 = NULL;
int value, i;
fp1 = fopen("sample1.txt", "w");
if (fp1 == NULL) {
printf("파일 열기 실패\n");
return 0;
}
fp2 = fopen("sample2.txt", "wb");
if (fp2 == NULL) {
printf("파일 열기 실패\n");
return 0;
}
for (i = 0; i < 100; i++) {
value = rand();
fprintf(fp1, "%d", value);
fwrite(&value, sizeof(int), 1, fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
댓글
댓글 쓰기