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

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

Войти
Регистрация
Восстановить пароль
 
Wladius
12 / 7 / 2
Регистрация: 06.01.2013
Сообщений: 127
#1

Указатели - C++

27.05.2013, 21:31. Просмотров 286. Ответов 6
Метки нет (Все метки)

Можно ли как-то избавиться от скобочек вокруг (*temp), как тут вообще переписать это?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Item * ReadItems() {
    Item *head = NULL, **temp;
    ifstream IN(itemsName);
    temp = &head;
    
        char buf[MAX_LEN];
        while (IN.getline(buf, MAX_LEN, '\n')) {
            *temp = new Item;
            int i = 0;
            while (buf[i] != ' ')
                ++i;
            buf[i] = '\0';
            (*temp)->name = new char[i];
            strcpy((*temp)->name, buf);
            i++;
            (*temp)->amount = atoi(buf + i);
            temp = &(*temp)->next;
        }
    
    IN.close();
    *temp = NULL;
    return head;
}
Добавлено через 6 минут
Например если вот так делаю, то где ошибка?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Item * ReadItems() {
    Item *head = NULL, *temp=head;
    ifstream IN(itemsName);
    //temp = *head;
        char buf[MAX_LEN];
        while (IN.getline(buf, MAX_LEN, '\n')) {
            temp = new Item;
            int i = 0;
            while (buf[i] != ' ')
                ++i;
            buf[i] = '\0';
            temp->name = new char[i];
            strcpy(temp->name, buf);
            i++;
            temp->amount = atoi(buf + i);
            temp = temp->next;
        }
    
    IN.close();
    //*temp = NULL;
    return head;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 21:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатели (C++):

Указатели и указатели на указатели, а также типы данных - C++
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Через указатели на указатели посчитать сумму двух чисел и записать в третье - C++
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать примитивный калькулятор, пользуясь только...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? - C++
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной - C++
Мой код. #include <iostream> #include <stdlib.h> #include<iomanip> using namespace std; void min_max(int*pa, int*pb,...

Отсортировать массив и вывести на экран (массивы и указатели на указатели) - C++
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s- результат сессии F студента. Отсортировать массив S по...

Написать программу сортировки через указатели на указатели - C++
Вот моя программа #include <iostream> #include <conio.h> #include <string> using namespace std; //Сортировка "пузырьком". ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
27.05.2013, 21:45 #2
C++
1
2
3
4
5
6
    Item *temp;
    ...
    temp = head;
    ...
    strcpy( temp->name, buf );
    ...
Остальное по-аналогии..
1
Wladius
12 / 7 / 2
Регистрация: 06.01.2013
Сообщений: 127
28.05.2013, 10:01  [ТС] #3
Цитата Сообщение от lazybiz Посмотреть сообщение
C++
1
2
3
4
5
6
    Item *temp;
    ...
    temp = head;
    ...
    strcpy( temp->name, buf );
    ...
Остальное по-аналогии..
Этот способ представлен в моем втором варианте, не работает

Добавлено через 11 часов 17 минут
up, вопрос актуален.
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
28.05.2013, 10:28 #4
Вы же читаете массив переменных типа Item.
Все будет гораздо понятнее, если сначала прочитать файл в холостую
и определить количество записей, а потом создать массив head нужного размера,
перемотать файл на начало и читать прямо в этот массив.
1
_Mutex
Заблокирован
28.05.2013, 10:51 #5
C++
1
(**temp).name
1
Wladius
12 / 7 / 2
Регистрация: 06.01.2013
Сообщений: 127
28.05.2013, 21:55  [ТС] #6
Извините, что повторяюсь, но вопрос еще актуален, up.
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
28.05.2013, 22:34 #7
Что должна возвращать функция ReadItems ?

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Item * ReadItems() {
    Item *head = 0, *tail, *temp;
    ...
    while ( ... ) {
        temp = new Item;
        ...
        // заполняем temp
        ...
        if ( !head ) {
            head = tail = temp;
            head->next = 0;
        } else {
            tail->next = temp;
            tail = tail->next;
        }
    }
    ...
    return head;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2013, 22:34
Привет! Вот еще темы с ответами:

Указатели на слонов или А зачем нужны указатели? - C++
Знаю что таких вопросов было уйма, но я так и не нашел ответа на свой вопрос. Для чего нужны указатели? Что такое указатели я знаю, это...

Используются ли на практике указатели на указатели объектов? - C++
Имеются ввиду указатели именно на объекты, а не динамические массивы. Например такой: Object** obj; А как насчёт такого: Object***...

Указатели на массивы. Указатели и функции - C++
Вот задача: Даны два массива : А и B. Необходимо создать третий массив, в котором нужно собрать: -Элементы обоих массивов; -Общие...

Константные указатели и указатели на константу - C++
Чем они, собственно говоря, отличаются? Поясните, пожалуйста. Не знаю, как так получилось, что в разных источниках - разные...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.05.2013, 22:34
Ответ Создать тему
Опции темы

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