Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MayaNash
1285 / 453 / 47
Регистрация: 24.08.2011
Сообщений: 2,214
#1

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

24.11.2014, 16:22. Просмотров 209. Ответов 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 Мб, 1 просмотров)
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2014, 16:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Одинаковый фрагмент действует по-разному в двух программах (C++):

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

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

Вывод всех данных из двух таблиц, где id одинаковый - MySQL
Есть 2 таблицы: users: http://www.cyberforum.ru/attachment.php?attachmentid=292971&amp;stc=1&amp;d=1374241680 и users_access:...

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

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

Подскажите почему у меня html страничка отображается по разному в двух браузерах - HTML, CSS
Подскажите пожалуйста почему у меня html страничка отображается по разному в двух браузерах firefox и chrome? В html и css введены одни и...

3
ssergius
6 / 6 / 2
Регистрация: 10.03.2013
Сообщений: 48
24.11.2014, 16:25 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Во втором куске name инициализирован и права доступа есть?
1
MayaNash
1285 / 453 / 47
Регистрация: 24.08.2011
Сообщений: 2,214
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
rikimaru2013
C++ Game Dev
2438 / 1132 / 240
Регистрация: 30.11.2013
Сообщений: 3,688
24.11.2014, 16:46 #4
Цитата Сообщение от Керра Посмотреть сообщение
fin.open(filename);
fin.close();
избегайте такого подхода - напишите обертку на основе паттерна RAII
1
24.11.2014, 16:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2014, 16:46
Привет! Вот еще темы с ответами:

Один и тот же внешний жесткий диск по разному работает на двух похожих ноутбуках - Жесткие диски
Один и тот же внешний жесткий диск по разному работает на двух похожих ноутбуках. От чего это может быть? На одном ноутбуке Asus он...

Вырезать фрагмент из wav файла и сохранить этот фрагмент в новый файл. - Программирование iOS
Добрый день, подскажите плиз как можно вырезать фрагмент из wav и сохранить его в новый wav файл?

В некоторых программах (shareman, QIP, домашняя фотостудия) в общем в некоторых нужных программах, вместо русских букв какие-то символы - Windows
Народ срочно нужна помощь, уже 2 недели парюсь с одной фигнй, в некоторых программах (shareman, QIP, домашняя фотостудия) в общем в...

@media не действует - HTML, CSS
Адаптирую через @media пишу как @media all and (max-width:1050px){ ..... } @media all and...


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

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

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