powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работа с файлами
17 сообщений из 17, страница 1 из 1
Работа с файлами
    #38240662
Rasrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня возникли проблемы в Dev-C++, при написании программы. Сама проблема заключается в том, что программа игнорирует if, и открывает файл. За раннее спасибо.
Сам код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
#include <cstdlib>
#include <iostream>
#include <string>
#include <cstring>
#include <fstream>

using namespace std;
class A
{
      public:
      int a,d;
      A(){} // Konstruktor
      ~A(){} // Dekonstruktor
void menu()
{
    cout << endl;
    cout << "Dobro pozhalovat' v menu biblioteki."<<endl;
    cout << "Dlya prosmotra spiska literatury vvedite: 1"<<endl;
    cout << "Dlya perehoda v menu dlya opracii s knigami vvedite: 2"<<endl;
    cout << "Dlya vyhoda iz prilozheniya vvedite: 0"<<endl;
    cin>>a;
}
void spisok()//pokazivaet knigi
     {   
    string s1,s2;
    fstream myfile;
    myfile.open ("spisok.txt");
     if (myfile.is_open())
     {
    while ( myfile.good() )
     {
      getline (myfile,s1);
      cout << s1 << endl;

     }
     myfile.close();
     
     }
    else cout << "Unable to open file";
     }  
void menu2()
{
    cout<<endl;        
    cout<<"Menu vozvrata i vzyatiya knigi"<<endl;
    cout<<"Dlya vozvrata knigi: 1"<<endl;
    cout<<"Dlya vzyatiya knigi: 2"<<endl;
    cout<<"Dlya vyhoda v glavnoe menu: 3"<<endl;
    cin>>d;    
}
};

int main()
{
int a;
int b=1;
int c=2;
A *p=new A; 
p->menu();
delete p; 
if (a=1)
{
p->spisok();
delete p;
}

    system("PAUSE");
    return EXIT_SUCCESS;
}
...
Рейтинг: 0 / 0
Работа с файлами
    #38240670
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rasrowпрограмма игнорирует if
Который?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с файлами
    #38240678
Rasrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
if (a=1)
{
p->spisok();
delete p;
...
Рейтинг: 0 / 0
Работа с файлами
    #38240693
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rasrow,

брехня. Программа прекрасно заходит в if и там, как и положено порядочной программе, вылетает
по сегфолту.
...
Рейтинг: 0 / 0
Работа с файлами
    #38240698
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rasrowif (a=1)
Результат присваивания переменной значения всегда равен самому значению. А раз это
значение отлично от нуля, то условие всегда выполняется. Ну а дальше, как уже и сказали
должно следовать громкое падение при попытке обращения к уже освобождённой памяти.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с файлами
    #38240699
Rasrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема в том, что он показывает список, даже если у меня а=0. Почему именно я не знаю.
...
Рейтинг: 0 / 0
Работа с файлами
    #38240700
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rasrowдаже если у меня а=0
С чего бы а быть нолём, если ты ему присваиваешь единицу?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с файлами
    #38240708
Rasrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут другая версия программы, но и тут вылетает то что не надо
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
#include <cstdlib>
#include <iostream>
#include <string>
#include <cstring>
#include <fstream>

using namespace std;
class A
{
      public:
      A(){} // Konstruktor
      ~A(){} // Dekonstruktor
void spisok()//pokazivaet knigi
     {   
    string s1,s2;
    fstream myfile;
    myfile.open ("spisok.txt");
     if (myfile.is_open())
     {
    while ( myfile.good() )
     {
      getline (myfile,s1);
      cout << s1 << endl;

     }
     myfile.close();
     
     }
    else cout << "Unable to open file";
     }  
};

int main()
{
int a;
int i=0;
A *p=new A;
while (0<a<3)
{   int b=1;
    int c=2;
    cout << endl;
    cout << "Dobro pozhalovat' v menu biblioteki."<<endl;
    cout << "Dlya prosmotra spiska literatury vvedite: 1"<<endl;
    cout << "Dlya perehoda v menu dlya opracii s knigami vvedite: 2"<<endl;
    cout << "Dlya vyhoda iz prilozheniya vvedite: 0"<<endl;
    cin>>a;
    if (a=c)
    {for(int k=3,d;k!=d;)
    {
    cout<<endl;        
    cout<<"Menu vozvrata i vzyatiya knigi"<<endl;
    cout<<"Dlya vozvrata knigi: 1"<<endl;
    cout<<"Dlya vzyatiya knigi: 2"<<endl;
    cout<<"Dlya vyhoda v glavnoe menu: 3"<<endl;
    cin>>d;
    
    }
    }
    if (a=b)
    {
    p->spisok();
    delete p; 
    }        
}

    return 0;
}
...
Рейтинг: 0 / 0
Работа с файлами
    #38240713
Rasrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovRasrowдаже если у меня а=0
С чего бы а быть нолём, если ты ему присваиваешь единицу?..

Может быть я и ошибаюсь, но разве я if (a=1) это не значит то, что будет эта функция запускаться только тогда, когда a=1, а не при других значениях?
...
Рейтинг: 0 / 0
Работа с файлами
    #38240734
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rasrowразве я if (a=1) это не значит
Нет.

Запомни, деточка: один знак равенства это присваивание . Сравнение это два
знака равенства.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с файлами
    #38240735
Rasrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovRasrowразве я if (a=1) это не значит
Нет.

Запомни, деточка: один знак равенства это присваивание . Сравнение это два
знака равенства.


Спасибо папочка! На век запомню.
...
Рейтинг: 0 / 0
Работа с файлами
    #38240932
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это самые ржаки:
Код: plaintext
1.
while (0<a<3)
...
Рейтинг: 0 / 0
Работа с файлами
    #38241214
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВот это самые ржаки:
Код: plaintext
1.
while (0<a<3)



Да, это тоже тождественно true всегда.
...
Рейтинг: 0 / 0
Работа с файлами
    #38241219
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме того там ещё эта переменная a не инициирована.
...
Рейтинг: 0 / 0
Работа с файлами
    #38241368
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivКроме того там ещё эта переменная a не инициирована.

Ну так тем if-ом она как раз и инициализируется. А то, что это приводит к варнингу, так
что же их читает...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с файлами
    #38242946
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMasterZivКроме того там ещё эта переменная a не инициирована.

Ну так тем if-ом она как раз и инициализируется. А то, что это приводит к варнингу, так
что же их читает...

Имелся в виду второй вариант, с while (0<a<3).
...
Рейтинг: 0 / 0
Работа с файлами
    #38245732
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mozok,

Да, второй. Т.е. последний.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Работа с файлами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]