ํ์ผ ์ ์ถ๋ ฅ์ ํ๋ก๊ทธ๋จ์ด ํ์ผ์ ์ฝ์ด๋ค์ด๊ฑฐ๋ ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ ์์ ์ ๋งํฉ๋๋ค. C ์ธ์ด์์ ํ์ผ ์ ์ถ๋ ฅ์ stdio.h ํค๋ ํ์ผ์ ์ ์๋ ํจ์๋ค์ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค.
Linux base
"r": ์ฝ๊ธฐ ๋ชจ๋ (ํ์ผ์ด ์กด์ฌํด์ผ ํจ)
"w": ์ฐ๊ธฐ ๋ชจ๋ (ํ์ผ์ด ์์ผ๋ฉด ์๋ก ์์ฑํ๋ฉฐ, ํ์ผ์ด ์ด๋ฏธ ์์ผ๋ฉด ๊ธฐ์กด ๋ด์ฉ์ ์ง์)
"a": ์ถ๊ฐ ๋ชจ๋ (ํ์ผ์ด ์์ผ๋ฉด ์๋ก ์์ฑํ๋ฉฐ, ํ์ผ์ด ์ด๋ฏธ ์์ผ๋ฉด ๊ธฐ์กด ๋ด์ฉ ๋์ ์ถ๊ฐ)
"rb", "wb", "ab": ์ด์ง ํ์ผ์ ์ฝ๊ธฐ/์ฐ๊ธฐ/์ถ๊ฐ ๋ชจ๋๋ก ์ด๊ธฐ
1) ํ์ผ ์ฐ๊ธฐ(File Wirte): fopen ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ์ ์ด ๊ณ , ์๋ก์ด ํ์ผ์ ์ธ ์(์์ฑ) ์์ต๋๋ค.
#include <stdio.h>
int main() {
FILE * file = fopen("/mnt/c/Users/oneko/Desktop/Clang/test1.txt", "w");
if (file == NULL) { // ํญ์ ์๋ฌ ํ์ธ์ ํด๋๋๊ฒ ์ข์ต๋๋ค
printf("ํ์ผ ์ฝ๊ธฐ ์คํจ\n");
return 1;
}
fputs("fputs์ ์ด์ฉํ์ฌ ๊ธ์ ์ ์ด๋ณผ๊ฒ์\n", file);
fputs("์ ์ ํ๋์ง ํ์ธ ๋ถํ์ฌ\n", file);
fprintf(file, "%s\n", "์๊ฐ์ ์์คํจ??");
fprintf(file, "%s\n", "ํ ์๊ฐ๋ ๋์น ์ ์์ง");
fclose(file); // ํ์ผ ๋ซ๊ธฐ๋ ํ์
return 0;
}
- fputs: ์ฃผ๋ก ๋ฌธ์์ด์ ํ์ผ์ ์ง์ ์ธ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐํ ๋ฌธ์(\n)๊ฐ ํฌํจ๋ ๋ฌธ์์ด์ ์ ์ฒด๋ก ํ์ผ์ ์ฐ๊ธฐ์ ์ ํฉํฉ๋๋ค.
- fprintf: ํ์ ์ง์ ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ํ์ผ์ ์ธ ๋ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๋ณ์๋ ํน์ ํ์์ ๋ฌธ์์ด์ ํ์ผ์ ์ธ ๋ ์ ์ฉํฉ๋๋ค.
2) ํ์ผ ์ฝ๊ธฐ(FIle Read): fopen ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด์ ์กด์ฌํ๋ ํ์ผ์ ๋ด๋ถ๋ฅผ ์ฝ์ด์ฌ ์ ์์ต๋๋ค.
#include <stdio.h>
int main() {
FILE* file = fopen("/mnt/c/Users/oneko/Desktop/Clang/test1.txt", "r");
if (file != NULL) {
char value[100];
char value2[100];
fscanf(file, "%[^\n]", value);
fscanf(file, " ");
fscanf(file, "%[^\n]", value2);
printf("์ฝ์ ๊ฐ: %s\n", value);
printf("์ฝ์ ๊ฐ2: %s\n", value2);
fgets(value, sizeof(value), file);
fgets(value2, sizeof(value2), file);
printf("์ฝ์ ๊ฐ 1: %s", value);
printf("์ฝ์ ๊ฐ 2: %s", value2);
fclose(file);
} else {
printf("ํ์ผ ์ด๊ธฐ ์คํจ\n");
}
}
- ํ์ผ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ธฐ ์ํด์๋ fscanf ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ๋๋ fgets ํจ์๋ ํ์ผ์์ ํ ์ค์ฉ ๋ฌธ์์ด์ ์ฝ์ด์ค๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ง์ ๋ ๊ธธ์ด(num)๊น์ง์ ๋ฌธ์์ด์ ์ฝ์ด์ค๊ณ , ํ์ผ์ ๋์ ๋๋ฌํ๊ฑฐ๋ ๊ฐํ ๋ฌธ์('\n')๋ฅผ ๋ง๋๋ฉด ์ฝ๊ธฐ๋ฅผ ๋ฉ์ถฅ๋๋ค.
3) ํ์ผ ์์ (File Update)
#include <stdio.h>
int main() {
FILE* file = fopen("/mnt/c/users/oneko/desktop/clang/test1.txt", "a");
if (file != NULL) {
fputs("Hello Worlddd!\n", file);
fputs("๊ธ์ด ์ถ๊ฐ ๋์์ต๋๊น์์์?\n", file);
fprintf(file, "Hello Worlddd!\n");
fprintf(file, "๊ธ์ด ์ถ๊ฐ ๋์์ต๋๊น์์์?\n");
fclose(file);
} else {
printf("ํ์ผ ์ด๊ธฐ ์คํจ\n");
}
return 0;
}
๋ ๋ค ํ์ผ์ ๋ฌธ์์ด์ ์ธ ์ ์์ง๋ง, ์ฌ์ฉ ๋ชฉ์ ์ ๋ฐ๋ผ ์ ํํ ์ ์์ต๋๋ค. fputs๋ ๋จ์ํ ๋ฌธ์์ด ์ฐ๊ธฐ์ ์ ์ฉํ๊ณ , fprintf๋ ํ์ํ๋ ์ถ๋ ฅ์ ํ ๋ ์ ์ฉํฉ๋๋ค.
[์ค๋ฅ ํด๊ฒฐ]
fscanf ํจ์์์ ์ฌ์ฉ๋ ํ์ ์ง์ ์์ ๊ด๋ จ์ด ์์ต๋๋ค. %s ํ์ ์ง์ ์๋ ๊ณต๋ฐฑ ๋ฌธ์(์คํ์ด์ค, ํญ, ๊ฐํ ๋ฑ)์ ์ ์ธํ ๋ฌธ์๋ค์ ์ฝ์ต๋๋ค. ๋ฐ๋ผ์ "fputs์" ๋ค์์ ๊ณต๋ฐฑ์ด๋ ๊ฐํ ๋ฌธ์๊ฐ ๋์ค๋ฉด ์ฝ๊ธฐ๊ฐ ๋ฉ์ถ๊ฒ ๋ฉ๋๋ค.
๋ง์ฝ ํ์ผ์ ์ฌ๋ฌ ์ค์ด ์๊ณ , ๊ฐ ์ค์ ํต์งธ๋ก ์ฝ๊ณ ์ถ๋ค๋ฉด %s ๋์ %[^\n]์ ์ฌ์ฉ
'Programming > C language' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
14 Structure (๊ตฌ์กฐ์ฒด) (0) | 2024.01.25 |
---|---|
13 Array (0) | 2024.01.24 |
12 Pointer (1) | 2024.01.24 |
11 function (ํจ์) (0) | 2024.01.23 |
10 string (feat. random ํจ์) (0) | 2024.01.23 |
๋๊ธ