scanf가 scanf라고 불리는 이유는 무엇입니까? (인쇄와 동일)


11

C 프로그래밍 언어에서 형식화 된 입력을 읽는 기능이 "readf"가 아닌 "scanf"라고 불리는 이유가 궁금합니다. 나는 그것이 초기 언어에서 파생되었다고 가정합니다. 그렇다면이 언어에서 왜 그런 식으로 명명 되었습니까? (재발)

또한 왜 "writef"가 아닌 "printf"입니까? C 이외의 언어에서 왜 "display"가 아닌 "print"또는 "write"입니까?

답변:


12

Printf는 "인쇄 형식"입니다. "teletypewriter"의 동의어 인 "teleprinter"의 약자 인 "printer"의 "print"와 동일한 루트를 가지고 있으며 모니터 및 키보드 대신 컴퓨터와 상호 작용하기 위해 실제 TTY를 사용했을 때부터 발생합니다.

Scanf는 "스캔 형식"이며 "인쇄"패러다임과 일치합니다. OCR 환경에서 "스캐너"를 사용하는 것과 비교됩니다. 또한 읽기 / 쓰기가 오랫동안 한 쌍의 시스템 호출 인 것으로 가정 할 수 있으며 printf가 쓰기 (2)와 구별되는 것과 같은 방식으로 scanf를 read (2)와 분리하려고했습니다.


5

"읽기"는 실제로보고있는 내용을 이해해야합니다. 기본적으로 입력을 캡처한다는 의미 인 "스캔"과는 반대로 나중에 입력을 어떻게 처리할지 알아낼 것입니다.


좋은. 이것이 C 언어의 제작자 나 모국어에 의해 고려 된 것인지 아니면 이것이 의미가있는 것인지 아는가 있습니까? 또한 왜 일부 언어는 쓰기 나 표시 대신 인쇄를 사용한다고 생각합니까?
더그 트레드 웰

1
나는 이것의 많은 부분이 펀치 카드 (및 석재 정제 :)로 모든 것이 완료되었을 때 Yore 시대에 기원을 가지고 있다고 생각합니다. 그러한 맥락에서 스캔 / 인쇄는 읽기 / 쓰기보다 더 의미가 있습니다.
Craig T

1
나는 컴퓨팅의 의미에서 "읽기"가 당신이보고있는 것을 이해해야한다는 것에 동의하지 않습니다. 예를 들어 디스크에서 메모리로 1과 0을 한 곳에서 다른 곳으로 맹목적으로 복사하는 것이 의미합니다. 이해력이 없습니다.
토마스 디냥

컴퓨팅 감각에서 당신은 옳지 만 인간의 관점에서는 아닙니다.
Craig T

0

이것은 단지 "직관"인 답변입니다. 이름 readf()은 이미 읽을 것이 있다고 가정합니다. 그러나 scanf()실제로해야 할 일이 두 가지 있습니다 . 사용자 입력을 기다렸다가 (즉, 무언가를 찾을 때까지 입력 버퍼를 계속 스캔 ) 읽습니다. 운영 체제가 실제로 어떻게 구현하는지 판단하는 것이 아니라 개념적 작업을 설명하는 것입니다.

나는 당신이 나를 말해주지 알고 fscanf()sscanf()이 아이디어를 일치하지 않는,하지만 난 그들에 대한 확장 있다고 가정 scanf()하고, 따라서 그들에게 같은 이름을 그냥 "정상"이었다.

그건 그렇고, 왜 당신의 이름은 "ABCD"가 아닌 "Doug"입니까? :-피


실제로 "듣다"와 시력이 같은지 궁금합니다. 우리는 "듣고", "듣고", "읽을"수는 있지만 "누군가 무언가를 쓰고 읽을 때까지 기다린다"는 말은 없습니다. 아마도 스캔은이 단어 일 것입니다.
더그 트레드 웰

스캔의 dictionary.com 정의 3에서 : 대기업으로서 반복적으로 또는 광범위하게 피어링하거나 관찰하는 것; 서베이.
더그 트레드 웰

그래서,이 사전 정의는 내가 추측 한 주장을지지합니다. 함수가해야 할 일에 가깝습니다.
OmarOthman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.