C & LINUX

C / LINUX ungetc(3)

Ocean_ 2022. 5. 1. 17:11

함수 기능

한번 문자를 읽은 후 그문자를 다시 스트림에 되돌려 놓는 라이브러리 함수

함수 원형

#include <stdio.h>
int ungetc(int c, FILE *fp);

리턴 값 : 성공시 c 에러시 eof

함수 파라메터

c

다시 넣을 문자

fp

파일 포인터

함수 예제

#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int main(void){
    char operator;
    FILE *fp;
    int character;
    int number = 0;
    if((fp=fopen("ssu_expr.txt","r"))==NULL){
        fprintf(stderr,"fopen error for ssu_expr.txt\n");
        exit(1);
    }
    
    while(!feof(fp)){
        while((character = fgetc(fp))!=EOF && isdigit(character))
            number = 10 * number + character -48;

            fprintf(stdout," %d\n",number);
            number=0;
            if(character !=EOF){
                ungetc(character,fp);
                operator=fgetc(fp);
                printf("Operator=>%c\n",operator);
            }
    }
    fclose(fp);
    exit(0);
}

함수 결과

 

리눅스시스템 프로그래밍 - 홍지만 저

교재 내에 있는 예제를 바탕으로 작성한 글 입니다.