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

Error C2109: subscript requires array or pointer type - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Одномерный массив. Определить произведение элементов между первым и последим нулями. http://www.cyberforum.ru/cpp-beginners/thread754938.html
Здрасте) Помогите пожалуйста 2. Описать функции ввода с клавиатуры элементов одномерного массива и определения произведения его элементов, лежащих между его первым и последним нулями. Буду благодарен невероятно.
C++ Треугольник задан координатами своих вершин. Найти его периметр и площадь. Здрасте) Помогите пожалуйста Треугольник задан координатами своих вершин. Найти его периметр и площадь. (Описать функцию вычисления длины стороны). Буду благодарен невероятно. http://www.cyberforum.ru/cpp-beginners/thread754935.html
Определить, есть ли в матрице строка, содержащая больше положительных элементов, чем отрицательных C++
Здрасте) Помогите пожалуйста 1.Дан двумерный массив размером m на n, заполненный случайными числами. Определить, есть ли в данном массиве строка, содержащая больше положительных элементов, чем отрицательных. Буду благодарен невероятно.
C++ исправить код. матрица А(3,4).Упорядочить массив С(12), состоящий из элементов А, по возрастанию, найти минимальный по модулю элемент
...чтобы выдавала как матрица #include <stdio.h> #include <conio.h> #include <math.h> #include <stdlib.h> #include <time.h>//++ int main(){ const int m=3,n=4; srand(time(NULL)); int A,C,i,j,k=0,a,min_el=0;
C++ Как создать массив шестнадцатеричных чисел? http://www.cyberforum.ru/cpp-beginners/thread754871.html
int arr = {92, 18, D5, 4F, 22, 61, 3F, 2B, 59, 3B, CF, FC, 4C}; Очень много ошибок error C2065: D5: необъявленный идентификатор error C2059: синтаксическая ошибка: неправильный суффикс для числа error C2146: синтаксическая ошибка: отсутствие "}" перед идентификатором "F" error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "F" error C2065: F: необъявленный...
 

Показать сообщение отдельно
Boxster
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 5
07.01.2013, 21:27  [ТС]     Error C2109: subscript requires array or pointer type
Благодарю! Так я и думал...

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

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  
 
Текущее время: 04:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru