[C] 씹어먹는 C 언어 - <23 - 1. 파일 입출력 >

Kim Dongil·2022년 11월 12일
0

C

목록 보기
27/28

1. 사용자로 부터 경로를 입력 받아서 그 곳에 파일을 생성하고 a 를 입력해놓는 프로그램을 만들어보세요

(난이도 : 下)

#include <stdio.h>

int main() {
	char location[50];
	printf("경로를 입력하세요 : ");
	scanf("%s", location);
	printf("\n사용자가 입력한 경로 : %s", location);

	FILE* fp = fopen(location, "w");

	if (fp == NULL) {
		printf("File Error");
	}


	fputs("a", fp);

	fclose(fp);
	return 0;
}

2. a.txt 에 어떠한 긴 글이 들어 있는데, 이 글을 입력 받아서 특정한 문자열을 검색하는 프로그램을 만들어보세요

(난이도 : 中)

#include <stdio.h>

int main()
{
    char userInput[20];
    char temp;
    int i=0;
    int index=0;
    
    printf("검색할 문자열 : ");
    scanf("%s", userInput);

    printf("\n");
    
    FILE *fp = fopen("a.txt", "r");
    
    while(1){
        temp=fgetc(fp);
        if(temp==EOF) break;
    
        if(temp==*(userInput+i)){
            i++;
            if(*(userInput+i)==NULL){
                break;
            }
        }
        else{
            i=0;
            index++;
        }
    }
    if(temp==EOF) 
        printf("Not Equal\n");
    else 
        printf("Equal\nindex : %d", index);
    
    fclose(fp);
    return 0;
}

3. a.txt 에 문자열을 입력 받아서 b.txt 에 그 문자열을 역으로 출력하는 프로그램을 만들어보세요

(난이도 : 中下)

#include <stdio.h>

int main() {
	FILE* fpa = fopen("a.txt", "r");
	FILE* fpb = fopen("b.txt", "w");

	if (fpa == NULL) {
		printf("Read Error !! \n");
		return 0;
	}

	if (fpb == NULL) {
		printf("Write Error !! \n");
		return 0;
	}

	int count = 0;

	while (fgetc(fpa) != EOF) {
		count++;
	}

	char temp;

	for (int i = 0; i < count; i++) {
		fseek(fpa, i, SEEK_SET);
		temp = fgetc(fpa);
		fputc(temp, fpb);
	}

	fclose(fpa);
	fclose(fpb);
	return 0;
}

씹어먹는 C 언어 - <23 - 1. 파일 하고 이야기 하기 (파일 입출력에 대한 기본적 이해)>

0개의 댓글