Почему пробелы не считаются пробелами, когда мы объявляем файл заголовка в c++?

Когда мы объявляем заголовочный файл в C++. Не рекомендуется вставлять пробелы между угловыми скобками '<' '>' и именем файла заголовка. Если вставить - выходит с ошибкой. Я пробовал в Xcode и других IDE

// It is perfectly valid ( in c++ )
#include <iostream> 

but 

// It is invalid
#include < iostream >

В именах файлов могут быть пробелы (по крайней мере, в некоторых ОС). Может быть, будет яснее, если вы подумаете о случае, когда вы используете кавычки: #include " myfile.h ". Использование <> вместо кавычек просто указывает компилятору сначала проверить другое местоположение файла.

BoBTFish 31.10.2018 14:17

Пробелы - это просто плохая практика и приглашение ко всем проблемам. Я не думаю, что профессионального разработчика это волнует. Мы запрограммированы на устранение пробелов в именах файлов, будь то случай верблюда или змеи.

The Quantum Physicist 31.10.2018 14:20

Вы можете использовать пробелы. Он просто включает файлы. "file.h", "file.h", "file 1.h", file.h "- это разные файлы. Рекомендуется избегать пробелов. Лучше заменить их на подчеркивание.

user9379842 31.10.2018 14:26

@HelloWorld, спасибо за помощь, сэр, но если я добавляю пробелы в имя файла. Мой код не компилируется

decpk 31.10.2018 14:30

@PraveenKumar, как я / мы сказали, «iostream» и «iostream» - это разные файлы. Вы должны создать заголовок «iostream», чтобы использовать его.

user9379842 31.10.2018 14:33
3
5
384
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет файла заголовка с именем iostream, который начинается и заканчивается пробелом, поэтому вы получаете сообщение об ошибке.

Имя, все символы внутри <> или "" при использовании #include обозначают имя заголовка (в большинстве реализаций это относится к физическому имени файла)

Если вы включите один из ваших собственных файлов заголовков, например,

#include " file.h "

он будет искать файл с именем file.h (который начинается и заканчивается пробелом).

Это другое имя файла, чем у любого из этих двух:

#include "file.h "
#include "file.h"

Другие вопросы по теме