Язык программирования C++ для профессионалов



         

Ввод-вывод в С - часть 2


Ниже приведен более сложный пример:

char* src_file_name; int line; char* line_format = "\n#line %d \"%s\"\n"; main() { line = 13; src_file_name = "C++/main.c";

printf("int a;\n"); printf(line_format,line,src_file_name); printf("int b;\n"); }

в котором печатается

int a;

#line 13 "C++/main.c" int b;

Использование printf() ненадежно в том смысле, что нет никакого контроля типов. Так, ниже приведен известный способ получения неожиданного результата - печати мусорного значения или чего похуже:

char x; // ... printf("bad input char: %s",x);

Однако, эти функции обеспечивают большую гибкость и знакомы программирующим на С.

Как обычно, getchar() позволяет знакомым способом читать символы из входного потока:

int i;: while ((i=getchar())!=EOF) { // символьный ввод C // используем i }

Обратите внимание: чтобы было законным сравнение с величиной EOF типа int при проверке на конец файла, результат getchar() надо помещать в переменную типа int, а не char.

За подробностями о вводе-выводе на С отсылаем к вашему руководству по С или книге Кернигана и Ритчи "Язык программирования С".




Содержание  Назад  Вперед