c.의 EOF의 아스키 값은 얼마입니까?
i의 ASCII 값은 누구나 알고 있습니다.
나는 노력한다printf("%d",EOF);
그러나 그것의 인쇄물.-1
그리고 또한 시도합니다.printf("%c",EOF);
하지만 인쇄된 빈 화면입니다.
그래서 누구나 어떤 열쇠에 대한 것인지 알 수 있습니다.EOF
.
EOF
(C 언어에서 정의된 대로)는 문자가 아닙니다/ASCII 값이 아닙니다.그렇기 때문에getc
반환합니다.int
전혀unsigned char
읽기 문자가 다음 범위의 값을 가질 수 있기 때문입니다.unsigned char
의 반환 가치.getc
또한 문자가 아닌 값을 나타낼 수 있어야 합니다. EOF
(반드시 부정적이어야 함).
EOF의 실제 값은 시스템 정의이며 표준의 일부가 아닙니다.
EOF
이다.int
음의 값으로 인쇄하려면 다음을 사용해야 합니다.%d
형식 문자열이것은 시스템에 대한 가치만 알려줄 뿐입니다.당신은 그것의 가치가 무엇인지 신경쓰지 말아야 합니다.
EOF의 ASCII 값은 없습니다.127자를 포함하는 ASCII 표준이 있지만 EOF는 그 중 하나가 아닙니다.EOF는 -1입니다. 왜냐하면 그것이 그들이 특정 컴파일러에서 #defined로 결정한 것이기 때문입니다. 다른 것일 수도 있습니다.
헤퍼넌이 말했듯이, 그것은 시스템이 정의한 것입니다.EOF 상수(constand?)를 통해 액세스할 수 있습니다.
#include <stdio.h>
int main(void)
{
printf("%d\n", EOF);
}
컴파일 후:
c:\>a.exe
-1
c:\>
EOF는 그들이 말한 것처럼 ASCII 값을 가지고 있지 않습니다... 문제 없습니다.
또한, 당신은 EOF의 숫자 표현인 마지막에 나타나는 이상한 문자를 피할 수 있습니다.if
다음은 조건의 예입니다.
#include <stdio.h>
int main(void)
{
FILE *file = fopen("/home/abdulrhman/Documents/bash_history.log", "r");
FILE *file2 = fopen("/home/abdulrhman/Documents/result.txt", "w");
file =
file2 =
char hold = 'A';
while(hold != EOF)
{
hold = getc(file);
if(hold == EOF) break; // to prevent EOF from print to the stream
fputc(hold, file2);
}
fclose(file);
return 0;
}
바로 그거야
EOF가 ASCII 문자가 아닙니다.문자 크기와 비교하여 크기가 1바이트가 아니며 이는 다음을 통해 확인할 수 있습니다.
int main() {
printf("%lu", sizeof(EOF));
return 0;
}
그러나 항상 -1로 정의되어 있습니다.
int main() {
printf("%d",EOF);
return 0;
}
EOF의 키 조합은 +D입니다.EOF에 해당하는 문자는 기계에 따라 다릅니다.다음을 통해 확인할 수 있습니다.
int main() {
printf("%c", EOF)
return 0;
}
모든 목적을 위해 0x04 EOT(전송 종료 시 해당 지점에서 파일을 중지 및 차단하기 위한 신호 및 읽기 기능이 정상적으로 작동합니다.
언급URL : https://stackoverflow.com/questions/7622699/what-is-the-ascii-value-of-eof-in-c
'programing' 카테고리의 다른 글
CSS 오버플로 - 텍스트 한 줄만 (0) | 2023.08.19 |
---|---|
텍스트 영역의 문자 수 (0) | 2023.08.19 |
EF 예외:문자열 또는 이진 데이터가 잘립니다.문이 종료되었습니다.? (0) | 2023.08.19 |
파워셸에서 지능을 얻을 수 있습니까? (0) | 2023.08.19 |
열 이름과 ncol이 일치하지 않을 때 MySQL 테이블에 데이터 프레임 열 매핑 (0) | 2023.08.19 |