반응형

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) 형태로 전달
  • 즉 배열의 시작점을 가리키는 포인터 전달
반응형