Подтвердить что ты не робот

Какова величина ascii EOF в c.?

Любой знает, что такое ASCII-значение i.

Я пытаюсь printf("%d",EOF);

но его печать -1

а также попробуйте printf("%c",EOF);

но его экран пустой печати. ​​

чтобы кто-нибудь знал, какой ключ для EOF.

4b9b3361

Ответ 1

EOF (как определено в языке C) не является символом/не значением ASCII. Поэтому getc возвращает int, а не unsigned char - потому что чтение символа может иметь любое значение в диапазоне unsigned char, а возвращаемое значение getc также должно быть в состоянии представить несимвольное значение EOF (что обязательно отрицательно).

Ответ 2

Фактическое значение EOF определяется системой и не является частью стандарта.

EOF является int с отрицательным значением, и если вы хотите его распечатать, вы должны использовать строку формата %d. Обратите внимание, что это только скажет вам его значение в вашей системе. Вам все равно, какова его ценность.

Ответ 3

нет такой вещи, как значение ascii EOF. Существует ASCII-стандарт, который включает в себя 127 символов, EOF не является одним из них. EOF равно -1, потому что то, что они решили #definined, как в этом конкретном компиляторе, может быть что угодно.

Ответ 4

Как сказал Хеффернан, эта система определена. Вы можете получить к нему доступ через константу EOF (это константа?):

#include <stdio.h>

int main(void)
{
    printf("%d\n", EOF);
}

После компиляции:

c:\>a.exe
-1
c:\>

Ответ 5

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;
}

то есть

Ответ 6

EOF не является символом ASCII. Его размер не равен 1 байту в сравнении с размером символа, и это можно проверить с помощью

int main() {
    printf("%lu", sizeof(EOF));
    return 0;
}

Однако всегда определяется как -1. Попробуйте

int main() {
    printf("%d",EOF);  
    return 0;
}

Комбинация клавиш для EOF составляет Crtl + D. Символьный эквивалент EOF зависит от машины. Это можно проверить следующим образом:

int main() {
    printf("%c", EOF)
    return 0;
}

Ответ 7

для всех целей и задач 0x04 EOT (конец передачи, так как это нормальный сигнал и функция чтения для остановки и обрезания файла в этой точке.