반응형
c언어 파일 입출력 (Input Output) - 텍스트 파일의 문자열(글자) 숫자 (line) 읽기
이름, 전화번호 읽기
FILE; fgets(); feof(); sscanf(); fclose();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
/* Read name and number from every line */
#include <stdio.h>
int main() {
const int max = 100;
char line[max], firstName[50], lastName[50], phoneNumber[50];
FILE *in = fopen("phone.txt", "r");
while (!feof(in)) {
fgets(line, max, in);
sscanf(line, "%s %s %s", firstName, lastName, phoneNumber);
printf("%-6s %-10s %-10s", "Name: ", firstName, lastName);
printf("%10s %-12s\n", "Number: ", phoneNumber);
}
fclose(in);
}
|
이름, 전화번호 읽기
전화번호를 파일로부터 숫자로 인식할 경우 앞의 0을 생략한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include <stdio.h>
int main() {
const int max = 100;
char line[max], name[50];
int number;
FILE *in = fopen("phone2.txt", "r");
fgets(line, max, in);
while (!feof(in)) {
sscanf(line, "%[^,], %d", name, &number);
printf("%-6s %-20s", "Name: ", name);
printf("%10s %-12d\n", "Number: ", number);
fgets(line, max, in);
}
fclose(in);
}
|
I 정수 인수
- &n으로 표시
- &n으로 표시하지 않을 경우 sscanf()는 복사한 정수인수 전달
I 문자열 인수
- &n 불필요
- 배열은 값 (value)이 아닌, 참조 (reference) 형태로 전달
- 즉 배열의 시작점을 가리키는 포인터 전달
반응형
'C 언어 > C언어 기초' 카테고리의 다른 글
[C언어 #52] 순차 탐색 (Linear Search) - 특정 문자 포함 여부 찾기 (0) | 2020.07.20 |
---|---|
[C언어 #51] 파일 입출력 (IO) - 콤마 쉼표 구분해서 문자열 읽기 (0) | 2020.07.17 |
[C언어 #49] 파일 입출력 (IO) - 텍스트 파일 한줄씩 (line) 읽기 (0) | 2020.07.17 |
[C언어 #48] 파일 입출력 (IO) - 바이트 읽기 출력 (0) | 2020.07.16 |
[C언어 #47] 파일 입출력 (IO) - 텍스트 파일 문자열 읽기 출력 (0) | 2020.07.16 |