본문 바로가기
728x90
반응형
SMALL

개념175

chapter 18) stdin과 stdout을 사용한 문자 입출력 #include int main(void){ int ch; while(1){ ch = fgetc(stdin); if (ch == EOF){ break; }fputc(ch, stdout); } return 0; } ### 코드 설명 - `int ch;`: 입력받은 문자를 저장하기 위한 정수형 변수 `ch`를 선언합니다. 여기서 `int` 타입을 사용하는 이유는 `EOF`를 처리하기 위함입니다. `EOF`는 일반적으로 `-1`로 정의되며, `char` 타입으로는 이 값을 표현할 수 없습니다. - `while(1) { ... }`: 무한 루프를 생성합니다. 이 루프는 `EOF`가 입력될 때까지 계속 실행됩니다. - `ch = fgetc(stdin);`: `fgetc` 함수를 사용하여 표준 입력으로부터 한 문자.. 2024. 10. 8.
chapter 18) fread와 fwrite 함수의 차이 #include int main(void){ FILE *afp, *bfp; int num = 10, res; afp = fopen("a.txt", "wt"); fprintf(afp, "%d", num); bfp = fopen("b.txt", "wb"); fwrite(&num, sizeof(num), 1, bfp); fclose(afp); fclose(bfp); bfp = fopen("b.txt", "rb"); fread(&res, sizeof(res), 1, bfp); printf("%d", res); fclose(bfp); return 0; } ### 코드 설명 - `FILE *afp, *bfp;`는 파일 작업에 사용될 파일 포인터 `afp`와 `bfp`를 선언합니다. - `int num = 10, r.. 2024. 10. 7.
chapter 18) a+ 모드로 파일의 내용을 확인하며 출력 #include #include int main(void){ FILE *fp; char str[20]; fp = fopen("a.txt", "a+"); if (fp == EOF){ printf("do not make the file.\n"); return 1; } while (1){ printf("fruit name : "); scanf("%s", str); if (strcmp (str, "end") == 0){ break; } else if (strcmp (str, "list") == 0) { fseek(fp , 0, SEEK_SET); while(1){ fgets(str, sizeof(str), fp); if (feof(fp)) break; printf("%s", str); } } else fprin.. 2024. 10. 6.
chapter 17) 최고 학점의 학생 데이터 출력 #include struct student{ int id; char name[20]; double grade; }; int main(void){ struct student s1 = {315, "test1", 2.4}, s2 = {315, "test2", 3.7}, s3 = {317, "test3", 4.4}; struct student max; max = s1; if (s2.grade > max.grade) max = s2; if (s3.grade > max.grade) max = s3; printf("class : %d\n", max.id); printf("name : %s\n", max.name); printf("grade : %.1lf\n", max.grade); return 0; } ### 구조체.. 2024. 10. 5.
728x90
반응형
LIST