2014-09-29 2 views
1

Я установил MinGW на Windows 8.1 для кода на C++, и я пытаюсь запустить мои коды с использованием Sublime Text 3. До сих пор я успешный, но я не могу использовать cin и cout. Я знаю, что могу использовать scanf и printf. Но мне, возможно, придется использовать cin и cout. Когда я пытаюсь создать код на C++, содержащий cin или cout, он дает ошибку времени компиляции. Давайте посмотрим на кусок кода, который генерирует такую ​​ошибку:Команды 'cin' и 'cout' не работают

#include "iostream" 
#include "cstdio" 
using namespace std; 

int main() 
{ 
    int n; 
    std::cin >> n; 
    std::cout << n; 
} 

Ошибка приходит на моей машине: (Примечание: Я установил WinGHCi на моей машине использовать Haskell)

Info: resolving std::cin by linking to __imp___ZSt3cin (auto-import) 
Info: resolving std::cout by linking to __imp___ZSt4cout (auto-importc:/program files (x86)/haskell platform/2013.2.0.0/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line. 
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.) 

[Finished in 1.4s] 

Пожалуйста, помогите мне найти, что не так. Я намеренно не хочу использовать IDE.

Обратите внимание, что общее предложение заключается в использовании <iostream> вместо "iostream". В связи с этим, используя <iostream> производит следующую ошибку компиляции тот же код (с "iostream" и "cstdio" заменен <iostream> & <cstdio>):

Info: resolving std::cin by linking to __imp___ZSt3cin (auto-import) 
Info: resolving std::cout by linking to __imp___ZSt4cout (auto-importc:/program files (x86)/haskell platform/2013.2.0.0/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line. 
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.) 

[Finished in 1.8s] 
+7

попробуйте использовать не «iostream» – Kiloreux

+1

у вас уже declred использование пространства имен Std, нет необходимости говорить об этом с соиЬ, просто написать соиЬ и CIN, нет необходимости std :: cout – Kiloreux

+1

@ParamjitSingh Вы уверены, что это ошибки? Он говорит «информация» и «предупреждение», но никогда не «ошибка». – Biffen

ответ

1

Эти типы или ошибки часто throwned при использовании:

headers with version x 
---------------------- 
lib with version y 

Итак, проверьте это.

обновление

Если вы используете компилятор с версии 4.6.3, но вы используете заголовок 4.6 (по любой причине), то есть эти рода ошибки.

Полезные команды:

which g++ #locate where is your compiler (generally /usr/bin/g++) 
g++ --version #get compiler's version 
find/-name iostream | grep c++ #find where're your includes 
+0

Я не могу следовать тому, что вы сказали. Что я должен сделать, чтобы сделать эту работу? – 2014-09-29 14:33:56

+1

@ParamjitSingh Он говорит, что вы используете заголовочные файлы библиотеки, например, с версией 1.1, но вы фактически связываетесь с библиотекой, например, с версией 1.0. – KillianDS

+1

's/whois/which /' –

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