Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/57: Рейтинг темы: голосов - 57, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 5
1

Error C2109: subscript requires array or pointer type

07.01.2013, 17:15. Показов 11101. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Подскажите, пожалуйста, что нужно изменить, чтобы пропала ошибка error C2109: subscript requires array or pointer type c:\...\crane.cpp в строках 26 и 34? Ругается на отсутствие массива?

main.cpp
Кликните здесь для просмотра всего текста
C++
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
#include "stdafx.h"
#include <iostream>
#include "crane.cpp"
using namespace std;
 
 
int main(int argc, char* argv[])
{
    FILE *datafile;
    datafile = fopen("data.txt","r");
    if(!datafile)
        return -2;
    int qn = 0;
    int i = 0;
    char st[255];
    fgets(st,10,datafile);
    qn=atoi(st);
    crane *list;
    list=new crane[qn];
    while (!feof(datafile))
    {
        fgets(st,255,datafile);
        getCrane(st,&list[i]);
        printCrane(list);
        i++;
    }
    fclose(datafile);
    for(int i=0;i<qn;i++)
        delCrane(&list[i]);
    delete[]list;
 
    cin.ignore();
    cin.get();
 
    return 0;
}

crane.h
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
struct crane
{
    char *name;
    int capacity;
    double price;
};
void getCrane(char*,crane*);
void printCrane(crane*);
void delCrane(crane*);

crane.cpp
Кликните здесь для просмотра всего текста
C++
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
#include "stdafx.h"
#include "crane.h"
#include <stdlib.h>
#include <iostream>
 
using namespace std;
void getCrane(char* str,crane *_crane)
{
    if (str!=NULL)
    {
        _crane->name=new char[7];
        _crane->capacity=0;
        _crane->price=0;
        int i=0;
        int k=0;
        char capacity[7]="", price[10] = "";
        while(str[i]!='|')
        {
            _crane->name[i]=str[i];
            i++;
            k++;
        }
        i++;
        while(str[i]!='|')
        {
            _crane->capacity[i-k]=str[i];
            i++;
            k++;
        }
        capacity[i-k]='\0';
        i++;
        while(str[i]!='\n' && str[i]!='\0')
        {
            _crane->price[i-k]=str[i];
            i++;
        }
        price[i-k]='\0';
        _crane->capacity=atoi(capacity);
        _crane->price=atof(price); 
    }
}
 
void printCrane(crane *_crane)
{
    cout<<_crane->name<<"\t\t"<<_crane->capacity<<"\t\t"<<_crane->price<<endl;
}
 
void delCrane(crane * _crane)
{
    delete[]_crane->name;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.01.2013, 17:15
Ответы с готовыми решениями:

Error C2109: subscript requires array or pointer type
#include &lt;iostream&gt; using namespace std; template &lt;typename T&gt; void TemplateFunction1(T arr,...

Error C2109: subscript requires array or pointer
В функциях Poisk и Show компилятор пишет, что индекс i в элементе массива x должен иметь...

Добавить логику для работы функции pop и ошибку компилятора в коде: C2109 subscript requires array or pointer type
Задача:Смоделируйте очередь с помощью двух стеков. Добавление элемента в очередь сводится к...

Subscript requires array or pointer type
Задание Нужно перегрузить операции для квадратной матрици Операции: - =, * =. но у меня не...

3
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
07.01.2013, 18:46 2
У вас capacity описана как целое число, а обращаетесь как к массиву.
1
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 5
07.01.2013, 21:27  [ТС] 3
Благодарю! Так я и думал...

Что ж, я немного переписал код и добился стабильной работы, однако немного не в том виде, в котором нужно:

crane.cpp
Кликните здесь для просмотра всего текста
C++
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
#include "stdafx.h"
#include "crane.h"
#include <stdlib.h>
#include <iostream>
 
using namespace std;
void getCrane(char* str,crane *_crane)
{
    if (str!=NULL)
    {
        _crane->name=new char[10];
        _crane->capacity=0;
        _crane->price=0;
        int i=0;
        int k=0;
        char capacity[6], price[6];
        while(str[i]!='^')
        {
            _crane->name[i]=str[i];
            i++;
        }
        _crane->name[i]='\0';
 
        i++; k = i;
 
        while(str[i]!='^')
        {
            capacity[i-k]=str[i];
            k = i; i++;
        }
        
        i++; k = i;
 
        while(str[i]!='\n' && str[i]!='\0')
        {
            price[i-k]=str[i];
            k = i; i++;
        }
 
        _crane->capacity=atoi(capacity);
        _crane->price=atof(price); 
    }
}
 
void printCrane(crane *_crane)
{
    cout<<_crane->name<<"\t\t"<<_crane->capacity<<"\t\t"<<_crane->price<<endl;
}
 
void delCrane(crane * _crane)
{
    delete[]_crane->name;
}


crane.h
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
struct crane
{
    char *name;
    int capacity;
    double price;
};
void getCrane(char*,crane*);
void printCrane(crane*);
void delCrane(crane*);


main.cpp
Кликните здесь для просмотра всего текста
C++
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
#include "stdafx.h"
#include "crane.h"
#include <iostream>
using namespace std;
 
 
int main()
{
    FILE *datafile;
    datafile = fopen("data.txt","r");
    if(!datafile)
        return -2;
    char st[255];
    crane *list;
    list=new crane[7];
 
    cout<<"Model\t\tCapacity\tPrice\n"<<endl;
    int i = 0;
    while (!feof(datafile))
    {
        fgets(st,255,datafile);
        getCrane(st,&list[i]);
        printCrane(&list[i]);
        i++;
    }
    fclose(datafile);
    for(int i=0;i<7;i++)
        delCrane(&list[i]);
    delete[]list;
 
    cin.ignore();
    cin.get();
 
    return 0;
}



Данные берутся из этого файла data.txt:
Кликните здесь для просмотра всего текста
Volvo^500^3000
Merlo^1000^5000
MAN^2000^7000
LTECH^5000^10000
Bronto^10000^13000
Pioneer^25000^17000
Wader^50000^20000


По непонятным мне причинам выводится по-другому - обрезаются значения после 2х знаков:
В чём может быть загвоздка? В блоке парсера в crane.php какие только шаманства с i и k не пробовал...
Миниатюры
Error C2109: subscript requires array or pointer type  
0
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 5
07.01.2013, 23:14  [ТС] 4
Убрал в циклах k=i, всё получилось!
0
07.01.2013, 23:14
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.01.2013, 23:14
Помогаю со студенческими работами здесь

Работа с функциями и ошибка "Subscript requires array or pointer type"
Ребят, такая проблема. вот код #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cmath&gt; using...

Error: array type has incomplete element type
в функции выдает ошибку \arifm.c|4|error: array type has incomplete element type| подправьте...

Error C2108: subscript is not of integral type
Выдаёт на компиляции такую ошибку error C2108: subscript is not of integral type в чём...

Ошибка при компиляции: cannot use uintptr(unsafe.Pointer(sslPara) (type uintptr) as type syscall.Pointer in field value
Добрый день. Помогите, пожалуйста, разобраться с проблемой. При попытке скомпилировать проект...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru