2017-02-18 16 views
1

Я тестировал некоторые очень простые вещи в Visual Studio 2015. По какой-то причине я не могу на всю жизнь меня понять, почему эта простая программа не будет скомпилируйте в Visual Studio 2015 C++ IDE. Вот исходный код:Visual Studio C++ не принимает >> или << за начальные объявления

#include <iostream>; 
#include <cstdlib>; 
#include "stdafx.h"; 

using namespace std; 

int main() { 
    cout << "Hello world!"; 
    cout << "\nI am a C++ program!"; 
    cout << "\n\nWhat is your name? "; 
    string name; 
    cin >> name; 
    cout << "Nice to meet you, " << name; 
} 

Он собирает PERFECTLY штраф в http://www.cpp.sh, минус "stdafx.h" библиотеку, конечно, так как это только Visual Studio. Вот то, что я получил за

сообщений об ошибках:

1> C: \ Users \ Ориона \ Documents \ Visual Studio 2015 \ Projects \ ConsoleApplication1 \ ConsoleApplication1 \ consoleapplication1.cpp (13): ошибка C2679: binary '< <': оператор не найден, который принимает правый операнд типа 'std :: string' (или нет приемлемого преобразования) 1> c: \ users \ orion \ documents \ visual studio 2015 \ projects \ consoleapplication1 \ consoleapplication1 \ consoleapplication1.cpp (13): обратите внимание: при попытке сопоставить список аргументов '(std :: basic_ostream>, std :: string)'

Что-то странно, это должно быть связано с Visual Studio 2015. Тип приложения - стандартное консольное приложение. Я посмотрел, и я не могу найти ответ для этого.

+4

'#include '? – Ryan

+1

Вам нужно '#include '. –

+0

@Monstarules: '' не является файлом для включения всей стандартной библиотеки. Он просто определяет некоторые макросы, такие как 'EXIT_SUCCESS', и объявляет som функции типа' exit'. –

ответ

1

Ваш код действительно дает сказал предупреждение на Visual Studio 2015: http://rextester.com/YERLQA25808

Для использования string вам нужно #include <string>.

Когда вы делаете это компилирует и работает просто отлично: http://rextester.com/BKA25587

+0

Да, спасибо, я чувствую себя как-то немым atm ' – Monstarules

+0

@Monstarules Поверьте мне, мы все были там. –

2

Для использования std::string необходимо включить заголовок <string>.

+0

Yeaaaah, который сделал это. Я мог бы поклясться, что он был включен в мой cstdlib. – Monstarules

+0

cstdlib отличается от приложений. Спасибо – Monstarules

+0

@Monstarules: см. Http://rextester.com/KKNKP15624 – Destructor

1

Заголовки должны быть:

#include "stdafx.h" 

#include <iostream> 
#include <cstdlib> 

Кроме того, необходимо <string> как отметили другие ответы. stdafx.h заставляет весь предыдущий код отбрасываться, поэтому он должен быть первой строкой исходного файла.

 Смежные вопросы

  • Нет связанных вопросов^_^