2013-12-06 8 views
-3

Я этот простой код, но я не где ошибка этого всеКак я могу решить эту проблему на VC++ 6.0

#include <iostream.h> 
#include <fstream.h> 
#include <string.h> 

using namespace std; 

int main(){ 
    string s; 
    cout<<"Entrer nom de fichier avec le source"; 
    cin s; 
    ifstream fout; 
    fout.open(s); 
    s=fout.getche(); 
    fout.close(); 
    cout<<s; 
    return 0; 
} 

вызывают ошибки, показывающие после компиляции являются:

d:\workespace3.cpp(5) : error C2871: 'std' : does not exist or is not a namespace 

d:\workespace3.cpp(8) : error C2653: 'std' : is not a class or namespace name 

d:\workespace3.cpp(8) : error C2065: 'string' : undeclared identifier 

d:\workespace3.cpp(8) : error C2146: syntax error : missing ';' before identifier 's' 

d:\workespace3.cpp(8) : error C2065: 's' : undeclared identifier 

d:\workespace3.cpp(10) : error C2146: syntax error : missing ';' before identifier 's' 

d:\workespace3.cpp(13) : error C2039: 'getche' : is not a member of 'ifstream' 

c:\program files (x86)\microsoft visual studio\vc98\include\fstream.h(98) : see declaration of 'ifstream' 
Error executing cl.exe. 

workespace3.obj - 7 error(s), 0 warning(s) 
+3

Вы хотите включить '' и' ', а не входящие в комплект поставки. А также получите достойную вступительную книгу на C++. Кроме того, VC++ 6.0 является ужасным компилятором и нарушает ряд стандартов. Я настоятельно рекомендую использовать что-то с последнего десятилетия, если это возможно. – Joe

+2

@ Joe: Чтобы быть справедливым, оно не «нарушает» стандарты C++ 98 и более поздние, оно только предшествует им. Но это также хорошая причина не использовать его. –

ответ

1

Дону Не используйте формы .h включенных файлов, которые предназначены для обратной совместимости с C. Используйте, например, #include <string>.

+0

Большое спасибо за вашу помощь и с днем ​​рождения – user3075420

+1

@ user3075420, с днем ​​рождения? Почему ты это сказал? И ты же рад. –

1

У вас есть много ошибок:

1- Вы используете устаревшие файлы заголовков. Стандартные заголовки библиотеки C++ входят в заголовки без «.h». Таким образом, это будет:

#include <iostream> 
#include <fstream> 
#include <string> 

2- getche() не является надлежащим методом ifstream. Вот полный перечень методов ifstream:

http://www.cplusplus.com/reference/fstream/ifstream/

вероятно Вы имели в виду использовать получить() или GetLine()

3- Вы пропали без вести ">>" между "КИН" и " s».

4- Вы используете очень старую IDE. Там есть несколько новых и свободных IDE. В частности, вы можете бесплатно получить VC++ 2012 Express. Это будет более стандартов уступчивый, а также включать в себя лучшие инструменты и поддержку C++ 11

1

Если компилятор поддерживает стандартные заголовки C++ 98, а затем использовать их

#include <iostream> // no .h 

Если он поддерживает только древний pre-ISO заголовки, которые вы включаете, а затем просто не упоминайте о namespace std. В эти темные дни стандартная библиотека была просто сбрасывается в глобальное пространство имен.

Я бы подумал об использовании компилятора из этого тысячелетия; вам будет легче получить помощь от людей, чья память о 1990-х годах менее совершенна.

+0

Я только что протестировал это, и стандартные заголовки C++ 98 работают с Visual C++ 6. Я не был уверен, что с момента выпуска VC++ 6 в 1998 году (и я не использовал его в течение многих лет). Я считаю, что у меня есть SP5 (пакет обновления). – drescherjm

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