Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с запуском программы

379
27 августа 2005 года
Fima
109 / / 07.11.2002
Написана прога под дос. Вот исходник:
Код:
#include <conio.h>
#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. Что изменить в программе или где найти этот файл?
247
27 августа 2005 года
wanja
1.2K / / 03.02.2003
А ты ее на чем компиляло, на Builder'e или на BC++?
379
27 августа 2005 года
Fima
109 / / 07.11.2002
Цитата:
Originally posted by wanja
А ты ее на чем компиляло, на Builder'e или на BC++?


На Builder'e...

247
28 августа 2005 года
wanja
1.2K / / 03.02.2003
Цитата:
Originally posted by Fima
На Builder'e...


Сейчас у меня Билдера нету, так что точно сказать не могу, но, видимо, надо как-то показать компилятору, что это консольное приложение.

379
28 августа 2005 года
Fima
109 / / 07.11.2002
Цитата:
Originally posted by wanja
Сейчас у меня Билдера нету, так что точно сказать не могу, но, видимо, надо как-то показать компилятору, что это консольное приложение.


Я пробовал и на BC++. Программа запускается, но при вводе любого текса. Выдается какая-то ошибка... Что делать??? Попробуй в другом компильнутся.. Может поймешь в чем ошибка...

247
28 августа 2005 года
wanja
1.2K / / 03.02.2003
Цитата:
Originally posted by Fima
Я пробовал и на BC++. Программа запускается, но при вводе любого текса. Выдается какая-то ошибка... Что делать??? Попробуй в другом компильнутся.. Может поймешь в чем ошибка...


char *p1,*p2;
cin>>p1;cin>>p2;
Где ты выделяешь склероз под строки?

379
28 августа 2005 года
Fima
109 / / 07.11.2002
Цитата:
Originally posted by wanja
char *p1,*p2;
cin>>p1;cin>>p2;
Где ты выделяешь склероз под строки?


Чего? Не понял сути вопроса?

4.3K
28 августа 2005 года
DeFaCe
45 / / 28.08.2005
Цитата:
Originally posted by wanja
Сейчас у меня Билдера нету, так что точно сказать не могу, но, видимо, надо как-то показать компилятору, что это консольное приложение.


File -> New -> Other -> Console Wizard; Затем вводишь этот код. Всё работает (у меня)

379
28 августа 2005 года
Fima
109 / / 07.11.2002
Цитата:
Originally posted by DeFaCe
File -> New -> Other -> Console Wizard; Затем вводишь этот код. Всё работает (у меня)


В Builder'e или в BC++?

4.3K
28 августа 2005 года
DeFaCe
45 / / 28.08.2005
Цитата:
Originally posted by Fima
В Builder'e или в BC++?


В C++ Bilder 6

379
28 августа 2005 года
Fima
109 / / 07.11.2002
Цитата:
Originally posted by DeFaCe
В C++ Bilder 6


Я тоже попробовал, но:
Требует какой-то stlpmt45.dll

4.3K
28 августа 2005 года
DeFaCe
45 / / 28.08.2005
Цитата:
Originally posted by Fima
Я тоже попробовал, но:
Требует какой-то stlpmt45.dll


Посмотри, есть ли этот файл в директории Builder\Bin. У меня есть. Если нет, могу выслать на мыло!

379
28 августа 2005 года
Fima
109 / / 07.11.2002
Цитата:
Originally posted by DeFaCe
Посмотри, есть ли этот файл в директории Builder\Bin. У меня есть. Если нет, могу выслать на мыло!


Нет, этого файла в BIN'e нету.
Высылай: [email]fim_lee@mail.ru[/email]
Жду!
Спасибо!

247
28 августа 2005 года
wanja
1.2K / / 03.02.2003
Чтобы считать строку, под нее должна быть выделена память. Либо объявлять p1[200], либо выделять динамически: p1=new char[200];
379
28 августа 2005 года
Fima
109 / / 07.11.2002
Что не так?
Пробую переписать без iostream.h, а он пишет, что "Error open file!" в момент выполнения проги. Я сделал так:
Код:
#include <conio.h>
#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];"
Но прога тогда вообще виснет...
247
29 августа 2005 года
wanja
1.2K / / 03.02.2003
scanf("%s",&p1);
Ссылка на указатель - это, конечно, круто.
После char p1[200] вылетает???!!!
379
29 августа 2005 года
Fima
109 / / 07.11.2002
Цитата:
Originally posted by wanja
scanf("%s",&p1);
Ссылка на указатель - это, конечно, круто.
После char p1[200] вылетает???!!!


Да, вылетает!!!
А как? Если не поставить '&', то прога вроде виснет вообщее.......

247
29 августа 2005 года
wanja
1.2K / / 03.02.2003
Цитата:
Originally posted by Fima
Да, вылетает!!!
А как? Если не поставить '&', то прога вроде виснет вообщее.......


Напиши
char p1[200]
и
scanf("%s",p1);
Ну, и с p2 то же самое.

12K
09 сентября 2005 года
cocos1
9 / / 09.09.2005
Что изменить в программе или где найти этот файл?
Пробегая мимо в поисках длл-ки во что слышал и передаю:
Что-бы не возникало такое сообщение надо при компиляции где-то поставить птичку что-бы динамические библиотеки скомпилировались вместе с программой.
Если что не так сказал, не пинайте больно (лох я в этом деле)
585
09 сентября 2005 года
honeybeer
297 / / 06.09.2004
Project->Options->Linker->Use dynamic RTL снять галку.
Фсё!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог