[prg] почему компилируется один вариант программы и не компилируется другой?
здравствуйте.
извините за возможно глупый вопрос, но все же...
есть два варианта программы "hello< world":
вариант 1:
#include <iostream>
int main()
{
std::cout<<"Hello, world!\n";
}
он компилируется нормально.
вариант 2:
#include <iostream.h>
int main ()
{
cout << "Hello, World!\n";
}
на второй вариант mingw ругается так:
main.cpp:1:22: фатальная ошибка: iostream.h: No such file or directory
компиляция прервана.
вопрос: в чем разница между вариантами, почему не скомпилировался второй
вариант?
Приветствую всех.
Но ведь причина указана в сообщении компилятора: файл iostream.h не существует
или не найден!
Вы пытаетесь подключить несуществующий файл, именно по этой причине второй вариант
не компилируется.
В современной версии C++ обработка директивы #include отличается от того, что
было в языке C.
Директива #include в C++ может содержать как имя файла, так и некий абстрактный
идентификатор, не являющийся именем реального файла.
Запись вида:
#include <iostream>
как раз и содержит такой идентификатор 'iostream'. Какой реальный файл соответствует
этому идентификатору, решает компилятор.
Если в директиве #include будет указано имя файла с расширением, то компилятор
попытается найти и подключить указанный файл.
Кроме того, это не единственная ошибка во втором варианте: cout существует только
в пространстве имен std, поэтому либо надо использовать директиву using, либо
полное имя std::cout.
Успехов. Анатолий.