Проблема с запуском программы
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
main()
{
FILE *f1,*f2;
char per1,per2;
int fl=0;
char *p1,*p2;
cout<<"Vvedite 1 fa: ";cin>>p1;
cout<<"Vvedite 2 fa: ";cin>>p2;
clrscr();
if ((f1=fopen(p1,"r"))==NULL)
{
cout<<"Error open file!";return 1;
}
if ((f2=fopen(p2,"r"))==NULL)
{
cout<<"Error open file!";return 1;
}
fseek(f1, 0, SEEK_SET);
fseek(f2, 0, SEEK_SET);
do
{
per1=fgetc(f1);
per2=fgetc(f2);
if (per1 != per2)
{
if (fl==0) cout<<"Files not equality\n\n";fl=1;
cout<<" "<<per1<<" "<<per2<<'\n';
}
}while ((per1 != EOF) || (per2 != EOF)) ;
if (fl==0) cout<<"Files equality!!!";
fclose(f1); fclose(f2);
getch();
}
А при запуске выдает сообщение об ошибки. Требует какой-то stlpmt45.dll. Что изменить в программе или где найти этот файл?
А ты ее на чем компиляло, на Builder'e или на BC++?
На Builder'e...
На Builder'e...
Сейчас у меня Билдера нету, так что точно сказать не могу, но, видимо, надо как-то показать компилятору, что это консольное приложение.
Сейчас у меня Билдера нету, так что точно сказать не могу, но, видимо, надо как-то показать компилятору, что это консольное приложение.
Я пробовал и на BC++. Программа запускается, но при вводе любого текса. Выдается какая-то ошибка... Что делать??? Попробуй в другом компильнутся.. Может поймешь в чем ошибка...
Я пробовал и на BC++. Программа запускается, но при вводе любого текса. Выдается какая-то ошибка... Что делать??? Попробуй в другом компильнутся.. Может поймешь в чем ошибка...
char *p1,*p2;
cin>>p1;cin>>p2;
Где ты выделяешь склероз под строки?
char *p1,*p2;
cin>>p1;cin>>p2;
Где ты выделяешь склероз под строки?
Чего? Не понял сути вопроса?
Сейчас у меня Билдера нету, так что точно сказать не могу, но, видимо, надо как-то показать компилятору, что это консольное приложение.
File -> New -> Other -> Console Wizard; Затем вводишь этот код. Всё работает (у меня)
File -> New -> Other -> Console Wizard; Затем вводишь этот код. Всё работает (у меня)
В Builder'e или в BC++?
В Builder'e или в BC++?
В C++ Bilder 6
В C++ Bilder 6
Я тоже попробовал, но:
Требует какой-то stlpmt45.dll
Я тоже попробовал, но:
Требует какой-то stlpmt45.dll
Посмотри, есть ли этот файл в директории Builder\Bin. У меня есть. Если нет, могу выслать на мыло!
Посмотри, есть ли этот файл в директории Builder\Bin. У меня есть. Если нет, могу выслать на мыло!
Нет, этого файла в BIN'e нету.
Высылай: [email]fim_lee@mail.ru[/email]
Жду!
Спасибо!
Пробую переписать без iostream.h, а он пишет, что "Error open file!" в момент выполнения проги. Я сделал так:
#include <stdio.h>
#include <stdlib.h>
//#include <iostream.h>
main()
{
FILE *f1,*f2;
char per1,per2;
int fl=0;
char *p1,*p2;
printf("Vvedite 1 fa:");//cout<<"Vvedite 1 fa: ";
scanf("%s",&p1);
//cin>>p1;
printf("Vvedite 2 fa:");//cout<<"Vvedite 2 fa: ";
scanf("%s",&p2);
//cin>>p2;
clrscr();
if ((f1=fopen(p1,"r"))==NULL)
{
printf("Error open file!\n");
//cout<<"Error open file!";
return 1;
}
if ((f2=fopen(p2,"r"))==NULL)
{
printf("Error open file!\n");
//cout<<"Error open file!";
return 1;
}
fseek(f1, 0, SEEK_SET);
fseek(f2, 0, SEEK_SET);
do
{
per1=fgetc(f1);
per2=fgetc(f2);
if (per1 != per2)
{
if (fl==0)
printf("Files not equality\n\n");
//cout<<"Files not equality\n\n";
fl=1;
printf("\t%s\t",per1);
printf("%s\n",per2);
//cout<<" "<<per1<<" "<<per2<<'\n';
}
}while ((per1 != EOF) || (per2 != EOF)) ;
if (fl==0) printf("File equality!\n"); //cout<<"Files equality!!!";
fclose(f1);
fclose(f2);
getch();
}
Где ошибка?
Я пробовал применить это "Чтобы считать строку, под нее должна быть выделена память. Либо объявлять p1[200], либо выделять динамически: p1=new char[200];"
Но прога тогда вообще виснет...
Ссылка на указатель - это, конечно, круто.
После char p1[200] вылетает???!!!
scanf("%s",&p1);
Ссылка на указатель - это, конечно, круто.
После char p1[200] вылетает???!!!
Да, вылетает!!!
А как? Если не поставить '&', то прога вроде виснет вообщее.......
Да, вылетает!!!
А как? Если не поставить '&', то прога вроде виснет вообщее.......
Напиши
char p1[200]
и
scanf("%s",p1);
Ну, и с p2 то же самое.
Пробегая мимо в поисках длл-ки во что слышал и передаю:
Что-бы не возникало такое сообщение надо при компиляции где-то поставить птичку что-бы динамические библиотеки скомпилировались вместе с программой.
Если что не так сказал, не пинайте больно (лох я в этом деле)
Фсё!