648_____________________________________________Глава 11

infile » i » j;

прочтет, начиная с текущей позиции файла, связанного с потоком infile, два це-
лых числа в переменные i и j. Если в текущей позиции файла первому из чисел
предшествуют пробельные символы или разделители, то они будут пропущены. За
окончание числа операция примет первый отличный от цифры символ, в частно-
сти, пробельный. Поэтому если эти два числа были ранее записаны в файл напри-
мер, оператором

outfile « i « ' ' « j « endl;

то они прочтутся нормально. Но если они были записаны оператором
outfile « i « j « endl;

т.е. без пробела, то их цифры будут слиты вместе и это составное число прочтется
как i, а при чтении j произойдет ошибка.

Операцией » можно вводить из файла строки в переменные типа char *. На-
пример, операторы:

char s[60];

infile » s;

осуществляют чтение из файла в строку s. Но при этом читается не вся строка, а
только одна лексема — последовательность символов, заканчивающаяся пробель-
ным или разделительным символом. Для чтения целой строки имеются другие
способы, отличные от операции взять из потока и рассмотренные в главе 12 в раз-
деле 12.9.3.1.

Если при выполнении операции взять из потока считывается символ конца по-
тока, то операция возвращает 0. Этим можно воспользоваться, чтобы, например,
читать все содержимое файла, разбитое на лексемы:

while (infile»sl)
{

11.7.15 Приоритет и ассоциативность операций

В сложных выражениях, содержащих несколько операций, последователь-
ность их выполнения определяется прежде всего приоритетом операций. Имеется
16 уровней приоритета, приведенные ниже в таблице. Некоторые из этих уровней
содержат всего по одной операции. Наивысший уровень имеют операции, приве-
денные в первой строке таблицы, низший — в последней. Операции, указанные в
одной строке, имеют одинаковый уровень старшинства.

Там, где в таблице встречаются дубликаты операций (например, дубликаты
имеют операции сложения и вычитания), первая относится к унарной операции, а
вторая — к бинарной.

Если в выражении встречаются записанные подряд операции одного уровня
старшинства, то последовательность их выполнения определяется ассоциативно-
стью, которая может быть слева направо или справа налево.

Все операции, перечисленные в таблице, были рассмотрены в предыдущих
разделах, кроме операций new и delete, которые будут рассмотрены в разделе 11.9.