문자 입력 / 출력 및 입력 검증

버퍼

버퍼는 두 가지 유형으로 구분됩니다

  1. 완전 버퍼 : 버퍼가 가득 찬 경우는 (하여 전송 대상 콘텐츠)를 비우고
  2. 라인 버퍼 : 버퍼가 삭제됩니다 때 발생 개행 문자

종단 키보드 입력

파일, 스트림, 및 키보드 입력

낮은 수준의 I / O가 인해 시스템의 차이로 파일을 처리하기 위해 호스트 운영 체제의 기본 도구를 사용하는 것입니다, 일반적인 낮은 수준의 I / O 표준 라이브러리를 구축 할 수 없습니다. 따라서 C가 사용된다 표준 I / O 패키지 , 높은 수준의 특정 실현 C를 처리하는 시스템의 차이는 표준 인터페이스의 등가를 제공한다

개념적으로, C 프로그램은 스트림이 아니라 직접 이상의 파일과 처리.

스트림 (스트림)은 이상화 된 실제 입력 또는 출력 데이터가 맵핑 류를 데이터 스트림

C 치료 입력 및 저장 장치 같은 파일을 치료하기 위해 그에 출력 장치 공통가 키보드 입력 스트림 표준 입력에 의해 참조 화면에 출력이 표준 출력 스트림으로 표현되는 것을

파일의 끝

두 가지 방법으로 파일의 감지 말 :

  1. 문서 장소에서 특수 문자의 끝을 표시하는
  2. 저장 파일 크기 정보에 운영 체제를 허용

C에서 접근 방식을 통합 :이 파일의 끝을 감지하는 방법에 관계없이 운영 체제의 특별한 값 EOF의 끝에 도달하면 getchar가 기능은 파일을 돌려 보자

리디렉션 및 파일

방식으로 작업을 프로그램 및 파일을 확인합니다 :

  1. 명시 적 사용은 가까운 파일, 파일, 파일의 읽기, 쓰기 파일 및 기타 특수 기능을 엽니 다
  2. 프로그램이 함께 키보드와 스크린 작업과 함께 사용하도록 설계하지만, 리디렉션 입력 및 출력에 서로 다른 채널을 사용하여 파일로 재 할당 표준 입력 스트림에 관한 것입니다

입력 리디렉션

<유닉스 리디렉션 연산자와 함께 스트림 stdin을 파일 연결, 프로그램 가이드에 파일의 내용입니다, 입력을 상관하지 않는 프로그램 자체는 키보드 나 파일입니다

출력 재 지정

>파일에서 표준 출력에 표시 장치 리디렉션, 파일이 이미 존재하는 경우, 일반적으로 파일을 삭제하고 새로운 파일로 교체

리디렉션 조합

참고 :

  1. 순서는 무관 리디렉션 연산자
  2. 같은 명령에 대해 동일한 입력 및 출력 파일 이름을 사용하지 마십시오
  3. 입력 및 출력 파일 만 될 수 있습니다
  4. 만 다른 실행 프로그램 데이터 파일과의 연결을위한
  5. 공간이 필요하지 않습니다

좀 더 사용자 친화적 인 인터페이스 만들기

혼합 숫자와 문자를 입력

각 문자 getchar가 읽기 때문에 디지털 scanf와 읽기하는 공간, 탭, 줄 바꿈을 건너 반면 getchar가와 scanf와 잘 혼합하지

입력 확인

scanf와 입력이 실패하면, 입력 대기열에서의 에러의 나머지 입력이 시간에 getchar가 문자 입력 문자를 읽을 수

입력 검증의 전형적인 예 :

int get_int(void){
    int input;
    char ch;
    while(scanf("%d",&input)!=1){//如果输入不成功,则进入循环
        while((ch=getchar())!='\n'){//getchar逐个读取输入的字符
            putchar(ch);//剔除错误输入
        }
    }
  return input;
}

추천

출처www.cnblogs.com/xkf97/p/12461945.html