2017-02-11 23 views
-6

История предыстории: я пытаюсь создать учетную запись на en.cppreference.com. Часть процесса включает в себя: Что отображается std :: cout < < "ev" < < 'a';не может понять «std :: cout»

Дилемма: Я понятия не имею, что это, черт возьми. Я попытался положить это в терминал, но ничего полезного не получил. Я попытался поместить это в код и скомпилировать его ... до сих пор не повезло. Я искал ее, но не понял, что, черт возьми, они просят меня сделать. И последнее, но не менее важное: я отправился в http://en.cppreference.com/w/cpp/io/cout

и нашел следующий код, который я также пытался скомпилировать без везения.

#include <iostream> 
struct Foo { 
    int n; 
    Foo() { 
     std::cout << "static constructor\n"; 
    } 
    ~Foo() { 
     std::cout << "static destructor\n"; 
    } 
}; 
Foo f; // static object 
int main() 
{ 
    std::cout << "main function\n"; 
} 

попытки обобщить это привело:

[[email protected] LearningCode]$ gcc input.c 
input.c:1:20: fatal error: iostream: No such file or directory 
#include <iostream> 
        ^
compilation terminated. 

Все, что я пытаюсь сделать, это пройти, поэтому я могу создать учетную запись и узнать о программировании C.

+0

Вы используете C компилятор ('gcc') для компиляции кода, написанного на C++. Вы должны использовать компилятор C++, такой как 'g ++'. – DyZ

+2

Вам не нужна учетная запись cppreference.com, чтобы узнать C. Все, что доступно на cppreference.com, доступно вам без входа в систему. Наличие учетной записи позволяет редактировать вики. – emlai

+0

@DYZ, спасибо, это приятно знать.I – Vasqi

ответ

0

Код, представленный вами в программе на С ++. Вам нужно сохранить его в формате file.cpp, после этого вам нужно скомпилировать g++ file.cpp, и он должен работать.

Вы сохранили его file.c и скомпилировали его с помощью gcc, который является стандартом C, а не C++.

0

Это программа на C++, и вы пытаетесь скомпилировать ее с помощью компилятора gcc. Используйте компилятор g++ для компиляции этой программы.

+0

ОК спасибо, я подумал об этом. – Vasqi

+0

У меня создалось впечатление, что gcc был c/C++, поэтому я попытался скомпилировать как .c и .cpp, думая, что я это понял. Но я просто попробовал g ++ input.cpp, и это сработало нормально. Извините, но я больше не могу отметить ваш ответ как правильный, потому что мой представитель упал с 16 до 10, как только я задал этот вопрос. – Vasqi

+0

@ Vasqi, это нормально. Обратите внимание, что '' - это библиотека C++. Рад помочь. – Rishi

0

Компилятор gcc способен скомпилировать код C++, см. here. Я думаю, проблема в том, что вы компилируете с gcc input.c. Попробуйте изменить имя файла на input.cpp, так как файлы *.c являются файлами C, а файлы *.cpp являются файлами на C++. Вам также нужно сообщить компоновщику, поскольку C++ не связаны стандартом. Так что это должно работать: gcc input.cpp -lstdc++. Вы также можете использовать компилятор g++, по которому библиотеки связаны по умолчанию.
Чтобы ответить на другую часть вашего вопроса: std::cout есть фактически std:: и cout. std ist просто консоль (в C это stdout, я не уверен, что он называется тем же в C++). И cout печатает текст.

+0

Xeneda, я сделал неудачную попытку скомпилировать как: gcc input.cpp, прежде чем я пришел сюда, чтобы обратиться за советом. – Vasqi

+0

Попробуйте выполнить компиляцию с помощью gcc input.cpp -lstdC++. Это свяжет стандартные библиотеки C++. –

0

std::cout отпечаток данной строки в консоли. Я рекомендую попробовать базовый учебник C++, возможно, this будет в порядке.

Два Простейшая примеры, которые должны работать:

#include <iostream> 

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

И второй (делает точно то же самое):

#include <iostream> 
using namespace std; 

int main() 
{ 
    cout << "Hello World!"; 
} 
Смежные вопросы