Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1294 / 466 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
1

Одинаковый фрагмент действует по-разному в двух программах

24.11.2014, 16:22. Показов 903. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{
    ifstream fin;
    char name[50];
    do
    {
        cout << "Vvedite: ";
        gets(name);
        fin.open(name);
        if (!fin.is_open())
            cout << "Oshibka pri otkrytii faila!\n";
    } while (!fin.is_open());
    fin.getline(name, 50);
    fin.close();
    cout << name << endl;
    system("pause");
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Shelving::Shelving()
{
    ifstream fin;
    char filename[50];
    do
    {
        cout << "Vvedite puti k failu s dannymi o stellaje: ";
        gets(filename);
        fin.open(filename);
        if (!fin.is_open())
            cout << "Oshibka pri otkrytii faila!\n";
    } while (!fin.is_open());
 
    fin.getline(name, 50);
    fin >> nWarehouse >> nItems;
    for (int i = 0; i < nItems; i++)
        items[i] = new Item(fin);
    fin.close();
}
При вводе имени одного и того же существующего корректного текстового файла первая программа работает, а на втором фрагменте происходит ошибка со считыванием строки на строке fin.getline(name, 50) (см. вложение). В чем вообще разница и почему не работает? Вкладываю проект на всякий случай.
0
Миниатюры
Одинаковый фрагмент действует по-разному в двух программах  
Вложения
Тип файла: rar Climova Olga 01.rar (5.40 Мб, 2 просмотров)
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2014, 16:22
Ответы с готовыми решениями:

В разных программах по-разному отображается температура CPU
Приветствую товарищи! В общем не знаю, проблема это или что, но я не могу определить точную...

Одинаковый id в двух потоках
#include&lt;iostream&gt; #include&lt;thread&gt; using namespace std; class background_task { public: int...

Одинаковый текст в двух текстовых полях
Всем привет! Господа, подсобите, пожалуйста. Суть: Есть два текстовых поля на странице,...

Последний одинаковый символ в двух строках
Всем привет, передо мной стояла задача: написать программу, которая выведет номер последнего...

3
6 / 6 / 5
Регистрация: 10.03.2013
Сообщений: 48
24.11.2014, 16:25 2
Лучший ответ Сообщение было отмечено MayaNash как решение

Решение

Во втором куске name инициализирован и права доступа есть?
1
1294 / 466 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
24.11.2014, 16:29  [ТС] 3
ssergius, да. Это закрытый член класса Shelving.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Shelving
{
public:
    Shelving(); // конструктор по умолчанию
    Shelving(char *filename); // из файла
    ~Shelving(); // деструктор
    friend ostream& operator << (ostream &out, const Shelving &el);
    friend ofstream& operator << (ofstream &fout, const Shelving &el);
    void PrintFile();
    void Correct();
    bool SameItem();
    float TotalWeight();
    void Search(); // по названию детали
    bool More10NotHigher2();
private:
    char *name;
    int nWarehouse;
    (Item*) items[50];
    int nItems;
    Item& Search(char *name); // по названию детали
};
При компиляции все нормально

Добавлено через 28 секунд
ssergius, все, поняла... я же не инициализировала...
0
2540 / 1199 / 358
Регистрация: 30.11.2013
Сообщений: 3,820
24.11.2014, 16:46 4
Цитата Сообщение от Керра Посмотреть сообщение
fin.open(filename);
fin.close();
избегайте такого подхода - напишите обертку на основе паттерна RAII
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2014, 16:46

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как сделать на двух системниках одинаковый MAC?
Кратко суть: есть два системника, и один интернет кабель. Нужно работать и на том, и на том, но не...

Вывод всех данных из двух таблиц, где id одинаковый
Есть 2 таблицы: users:...

Найти отличие в двух программах, написанных на C++ и D
Доброго времени суток. Собственно, имеется такая задача: Система коррекции ошибок Решил я...

Background (img) подгружается в двух идентичных вариантах по разному
Может знает почему не целиком картинка бэкграунда загружается , и двух идентичных вариантах по...

Подскажите почему у меня html страничка отображается по разному в двух браузерах
Подскажите пожалуйста почему у меня html страничка отображается по разному в двух браузерах firefox...

сушка Bosch WTE86300BY/02 FD 8601, Ошибка F12 на двух программах
Уважаемые форумчане, поделитесь информацией, у меня её по сушкам нет никакой. Со слов клиентки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.