본문 바로가기

C언어/정리
C 언어 도전기 9

1. fputs

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

#define MAX 10000

int main(void)
{

//fputs, fgets 
char line[MAX]; // char line[10000]
FILE * file = fopen("D:\\test1.txt", "wb"); 
// r : 읽기 전용 /  w : 쓰기 전용 / a: 이어쓰기
// t : 텍스트 / b: 바이너리 데이터
if (file == NULL)
{
printf("파일 열기 실패\n");
return 1;
}

fputs("fputs를 이용해서 글을 적어볼게요.\n",file);
fputs("잘 적히는지 확인해주세요.\n", file);

//파일을 열고 나서 닫지 않은 상태에서 어떤 프로그램에 문제가 생기면 데이터 손실 발생 가능! 항상 파일은 닫아주기.
fclose(file);

*프로젝트 급으로 이거 하나 하는 데에만 오류가..ㅠㅠ
fopen에서 하위 디렉토리를 처음에 C로 했더니 도저히 파일이 생기지 않았다. D로 바꾸니 해결!
(비주얼스튜디오에서 fopen을 쓰려면 제일 위에 추가 define도 필요.)

2. fgets

FILE* file = fopen("D:\\test1.txt", "rb");
if (file == NULL)
{
printf("파일 열기 실패\n");
return 1;
}

while (fgets(line, MAX, file) != NULL)
{
printf("%s", line);
}

** fputs와 거의 같은 형식으로 가되, fopen 에서 wb→rb , while 문 추가

3. fprintf

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

#define MAX 10000

int main(void)
{
int num[6] = { 0,0,0,0,0,0 }; // 추첨번호
int bonus = 0; // 보너스 번호
char str1[MAX];
char str2[MAX];
FILE* file = fopen("D:\\test2.txt", "wb");
if (file == NULL)
{
printf("파일 열기 실패\n");
return 1;
}

//로또 추첨 번호 저장
fprintf(file, "%s %d %d %d %d %d %d\n", "추첨번호", 1, 2, 3, 4, 5, 6);
fprintf(file, "%s %d\n", "보너스 번호", 7);

fclose(file);

return 0;
}

4. fcanf

#define _CRT_SECURE_NO_WARNINGS

#include 

#define MAX 10000

int main(void)
{
int num[6] = { 0,0,0,0,0,0 }; // 추첨번호
int bonus = 0; // 보너스 번호
char str1[MAX];
char str2[MAX];

FILE* file = fopen("D:\\test2.txt", "rb");
if (file == NULL)
{
printf("파일 열기 실패\n");
return 1;
}
fscanf(file, "%s %d %d %d %d %d %d\n", str1, 
&num[0], &num[1], &num[2], &num[3], &num[4], &num[5]);
printf("%s %d %d %d %d %d %d\n", str1,
num[0], num[1], num[2], num[3], num[4], num[5]);

fscanf(file, "%s %d\n", str2,&bonus);
printf("%s %d\n", str2, bonus);

fclose(file);

return 0;
}

 

**fputs, fgets 쌍   -> 문자열 저장
**fprintf, fcanf 쌍 -> 정형화된 파일 읽고 쓰기

'C언어 > 정리' 카테고리의 다른 글

C 언어 도전기 8  (0) 2022.07.05
C 언어 도전기 7  (0) 2022.07.04
C 언어 도전기 6  (0) 2022.07.03
C 언어 도전기 5  (0) 2022.07.03
C 언어 도전기 4  (0) 2022.07.02