Сделал программу в среде MS VC++ 6.0, захотел скомпилировать этот же самый код уже в IDE VS 2005, а там какие-то четыре ошибки Никак не могу понять их! Ну вот например одна из них:
| Код | error C2248: 'std::basic_ios<Elem,_Traits>::basic_ios':cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>'
|
А вот сами исходники проги (прога типа Виндифа)
functions.h
| Код | # pragma once
# include <iostream> # include <fstream> # include <windows.h> # include <string.h> # include <stdio.h>
using namespace std;
//----------------------------------------------------------------------------------------------- void RusOut(char *Str); void Change(char* adress,char s1,char s2,char s3); void OpenFile(fstream file, char* adress, char* nom); void FindString(fstream file1, fstream file2, char c1, char c2);
|
functions.cpp
| Код | # include "functions.h" //----------------------------------------------------------------------------------------------- void RusOut(char *Str) { unsigned char c; for(int i=0;Str[i]!='\0';i++) { c=Str[i]; if(c>127) { if(c<240)c-=64; else c-=16; } cout<<c; } } //----------------------------------------------------------------------------------------------- void Change(char* adress,char s1,char s2,char s3) { char* newadress = new char[100]; strcpy(newadress,adress); newadress[strlen(newadress)-3]=s1; newadress[strlen(newadress)-2]=s2; newadress[strlen(newadress)-1]=s3; int i=rename(adress,newadress); strcpy(adress,newadress);
delete [] newadress; } //----------------------------------------------------------------------------------------------- void OpenFile(fstream file,char* adress,char* nom) { // RusOut("Введите путь к "); RusOut(nom); RusOut(" файлу :> "); // cin.getline(adress,100); Change(adress,'t','x','t'); file.open(adress,ios::in); if(!file) { cout<<"\aERROR: "; RusOut("Файл не найден. Проверьте правильно ли введен путь к файлу"); cout<<endl; OpenFile(file,adress,nom); }
} //----------------------------------------------------------------------------------------------- void FindString(fstream file1, fstream file2, char c1, char c2) { file1.seekg(0); file2.seekg(0); int k=1; while(file2.tellg()!=EOF) { if(c2=='\n') k++; file1.read(&c1,1); file2.read(&c2,1);
if(c1!=c2) break; }
cout<<"\n+--------------------------+\n"; RusOut("| Номер строки: "); cout<<k; cout<<" |"<<endl; RusOut("| Символ в 1-ом файле: "); cout<<c1; cout<<" |"<<endl; RusOut("| Сивмол во 2-ом файле: "); cout<<c2; cout<<" |"<<endl; cout<<"+--------------------------+\n"; }
|
main.cpp
| Код | # include "functions.h" //---------------------------------------------------------------------------------------------- int main() { //SetConsoleTitle("Find String X ver 0.9.3 (c),2006"); cout<<"+---------------------------------------------------------------------+"; RusOut("\n| Программа ищет номер первой отличающейся строки в двух файлах |"); RusOut("\n| ВНИМАНИЕ: когда будете вводить имя файла, укажите его расширение |"); cout<<" \n+---------------------------------------------------------------------+"; RusOut("\nНажмите Enter для продолжения"); cin.get(); cout<<"\n"; fstream file_1,file_2; char adress_1[50],adress_2[50],old[3]; char ol_1,ol_2,ol_3; char c_1,c_2;
RusOut("Введите путь к первому файлу :> "); cin.getline(adress_1,100);
ol_1 = adress_1[strlen(adress_1)-3]; ol_2 = adress_1[strlen(adress_1)-2]; ol_3 = adress_1[strlen(adress_1)-1];
OpenFile(file_1,adress_1,"первому"); RusOut("Введите путь ко второму файлу :> "); cin.getline(adress_2,100);
OpenFile(file_2,adress_2,"второму");
FindString(file_1,file_2,c_1,c_2);
file_1.close(); file_2.close();
Change(adress_1,ol_1,ol_2,ol_3); Change(adress_2,ol_1,ol_2,ol_3);
RusOut("\nНажмите Enter для продолжения"); cin.get(); return 0; }
|
Теряю веру в VS2005 и в жизнь... Помогите  |