프로그래밍/C

[혼공C]_파일 개방과 입출력_ 18-7_a+ 모드로 파일의 내용을 확인하며 출력

MG_세대 2023. 12. 4. 11:13
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>

int main(void)
{
	FILE* fp;
	char str[20];

	fp = fopen("a.txt", "a+");
	if (fp == NULL) {
		printf("파일을 만들지 못했습니다. \n");
		return 1;
	}

	while (1)
	{
		printf("과일 이름 : ");
		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
		{
			fprintf(fp, "%s\n", str);
		}
	}
	fclose(fp);

	return 0;
}

 

위 코드에서

 

과일 이름 : apple 

과일 이름 : banana

과일 이름 : list 

"list"를 입력하게되면

 

apple

banana

이렇게 출력이 되며 

과일 이름 : end

end를 입력하면 프로그램이 종료된다.

 

a.txt 파일에는 아래와 같이 입력이 되어있다

 

 

다음 다시 빌드해서 실행 시켜

 

 

과일 이름 : strawberry

과일 이름 : list

입력하게 되면

리스트에 strawberry가 추가 되어 출력이된다.

 

그리고 a.txt 파일에도 추가가 된 것을 볼 수 있다.

 

 

이는 개방모드를 어떻게 쓰냐에 따라 읽고 쓰고의 차이가 조금씩 나타난다

 

 

fopen("파일경로", 개방모드);