버퍼
버퍼는 두 가지 유형으로 구분됩니다
- 완전 버퍼 : 버퍼가 가득 찬 경우는 (하여 전송 대상 콘텐츠)를 비우고
- 라인 버퍼 : 버퍼가 삭제됩니다 때 발생 개행 문자
종단 키보드 입력
파일, 스트림, 및 키보드 입력
낮은 수준의 I / O가 인해 시스템의 차이로 파일을 처리하기 위해 호스트 운영 체제의 기본 도구를 사용하는 것입니다, 일반적인 낮은 수준의 I / O 표준 라이브러리를 구축 할 수 없습니다. 따라서 C가 사용된다 표준 I / O 패키지 , 높은 수준의 특정 실현 C를 처리하는 시스템의 차이는 표준 인터페이스의 등가를 제공한다
개념적으로, C 프로그램은 스트림이 아니라 직접 이상의 파일과 처리.
스트림 (스트림)은 이상화 된 실제 입력 또는 출력 데이터가 맵핑 류를 데이터 스트림
C 치료 입력 및 저장 장치 같은 파일을 치료하기 위해 그에 출력 장치 공통가 키보드 입력 스트림 표준 입력에 의해 참조 화면에 출력이 표준 출력 스트림으로 표현되는 것을
파일의 끝
두 가지 방법으로 파일의 감지 말 :
- 문서 장소에서 특수 문자의 끝을 표시하는
- 저장 파일 크기 정보에 운영 체제를 허용
C에서 접근 방식을 통합 :이 파일의 끝을 감지하는 방법에 관계없이 운영 체제의 특별한 값 EOF의 끝에 도달하면 getchar가 기능은 파일을 돌려 보자
리디렉션 및 파일
방식으로 작업을 프로그램 및 파일을 확인합니다 :
- 명시 적 사용은 가까운 파일, 파일, 파일의 읽기, 쓰기 파일 및 기타 특수 기능을 엽니 다
- 프로그램이 함께 키보드와 스크린 작업과 함께 사용하도록 설계하지만, 리디렉션 입력 및 출력에 서로 다른 채널을 사용하여 파일로 재 할당 표준 입력 스트림에 관한 것입니다
입력 리디렉션
<
유닉스 리디렉션 연산자와 함께 스트림 stdin을 파일 연결, 프로그램 가이드에 파일의 내용입니다, 입력을 상관하지 않는 프로그램 자체는 키보드 나 파일입니다
출력 재 지정
>
파일에서 표준 출력에 표시 장치 리디렉션, 파일이 이미 존재하는 경우, 일반적으로 파일을 삭제하고 새로운 파일로 교체
리디렉션 조합
참고 :
- 순서는 무관 리디렉션 연산자
- 같은 명령에 대해 동일한 입력 및 출력 파일 이름을 사용하지 마십시오
- 입력 및 출력 파일 만 될 수 있습니다
- 만 다른 실행 프로그램 데이터 파일과의 연결을위한
- 공간이 필요하지 않습니다
좀 더 사용자 친화적 인 인터페이스 만들기
혼합 숫자와 문자를 입력
각 문자 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;
}