Почему эта программа не работает? - PullRequest
0 голосов
/ 23 марта 2012

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

c:\Users\user\Desktop>cl ram.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

ram.cpp
ram.cpp(1) : fatal error C1083: Cannot open include file: 'iostream.h': No such
file or directory

c:\Users\user\Desktop>

Вот ram.cpp

#include <iostream>

int main()
{
    cout << "Hello World!";
    return 0;
}

EDIT:

Я обновил свой код до

#include <iostream>
using namespace std;

int main(void)
{
    cout << "Hello World!";
    return 0;
}

И все равно получите эту ошибку

ram.cpp
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xlocale(323) : wa
rning C4530: C++ exception handler used, but unwind semantics are not enabled. S
pecify /EHsc
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:ram.exe
ram.obj

Ответы [ 3 ]

9 голосов
/ 23 марта 2012

Компилятор сказал вам, почему:

ram.cpp (1): фатальная ошибка C1083: Невозможно открыть включаемый файл: 'iostream.h': такого файла или каталога нет

Вы не используете .h.Просто используйте

#include <iostream>

Длинное подробное объяснение с большим количеством фона можно найти здесь.

Для вашего комментария вам необходимо купить новую книгу.Ваш так печально устарел, что даже не упоминает пространства имен!Чтобы заставить вашу программу работать, попробуйте следующее:

#include <iostream>

int main()
{
    std::cout << "Hello World!";
    return 0;
}

cout живет в пространстве имен std.

Если часто вводить std:: становится громоздким, вы можете импортироватьвведите для всего файла примерно так:

using std::cout;

И теперь вы можете просто написать cout вместо этого.Вы также можете импортировать все пространство имен, но это, как правило, плохая практика, потому что вы вытягиваете все это в глобальное пространство имен, и в будущем вы можете столкнуться с коллизиями.Однако, если вы знаете, что это не проблема (например, в одноразовом приложении или в небольшой утилите), вы можете использовать эту строку:

using namespace std;
5 голосов
/ 23 марта 2012

Это не называется "iostream.h", и никогда не было. Используйте #include <iostream>.

1 голос
/ 23 марта 2012

Правильный код должен быть

#include <iostream>

int main()
{
    std::cout << "Hello World!" << std::endl;
    return 0;
}

Какая бы книга не была написана до 2003 года, об этом не знают.Просто выбрось это.Тем временем мир переместился куда-то еще!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...