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

Создание переменной из строки json

26.01.2013, 19:22. Показов 5805. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане!!!
Это моя первая тема, прошу сильно меня не бить

Дали задание для лабораторной работы, как делать не представляю...прошу помочь советом, кодом, ссылкой или полезной информацией.
Есть строка json, необходимо составить программу , которая разбирает строку на переменные и ,при запросе определенной переменной,выводит внутренние параметры этой переменной на экран.
Нашла информацию как это делать на JavaScript , но для c++ ничего такого не обнаружила и не поняла как... Прошу помощи!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2013, 19:22
Ответы с готовыми решениями:

Формирование json объекта на основании строки в переменной $_GET
С помощью jquery отправляю запрос серверному скрипту, передавая туда строку вида (пример упрощен)...

JSON Reader. Как прочитать значение переменной в строке JSON
Добрый день! Подскажите пожалуйста как прочитать значение переменной в строке JSON: Есть...

Пропадает конец Json строки, при передаче Json строки через Ajax
Всем привет. Возникла следующая проблема. Из php получаю json строку, полученную с помощью...

Как получить из строки JSON токен используя JSON.NET?
Доброго времени суток, Господа. Поскажите пожалуйста. Я никогда не работал с JSON. Вот тут решил...

22
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
26.01.2013, 21:01 2
Karry, если я правильно понял, то можно воспользоваться boost.PropertyTree, выглядит это примерно так:
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
#include <iostream>
#include <sstream>
#include <string>
 
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
 
 
namespace bpt = boost::property_tree;
 
 
int main() {
   std::string jsonString; // пусть это строка с json
 
   std::istringstream iss(jsonString);
   bpt::ptree config;
   bpt::read_json(iss, config);
 
   while (true) {
      std::string var;   // путь к переменной через . (точку) (i.e. "one.two.three")
      std::cout << "var? ";  
      std::cin >> var;
 
      try {
         std::string const& value = config.get<std::string>(var);
         std::cout << value << std::endl;
      } catch (bpt::ptree_bad_path const&) {
         std::cerr << "No such var" << std::endl;
      }
   }
}
Здесь есть немного об этом.
1
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
26.01.2013, 21:14  [ТС] 3
gray_fox, Спасибо большое, думаю это подойдет!!!

А есть возможность как то еще ,не используя boost ... Просто думаю для лабораторной 2 семестра не слишком ли это будет шикарно и сложно..?)
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.01.2013, 21:52 4
Цитата Сообщение от Karry Посмотреть сообщение
А есть возможность как то еще ,не используя boost ... Просто думаю для лабораторной 2 семестра не слишком ли это будет шикарно и сложно..?)
Можно использовать другие библиотеки, но лучше наверное boost ...

Цитата Сообщение от Karry Посмотреть сообщение
Просто думаю для лабораторной 2 семестра не слишком ли это будет шикарно и сложно..?)
Можно писать самому парсер, но- "это будет шикарно и сложно" как по мне.

Возможно задание стоит более конкретно разобрать строку заданного вида - то есть не учитывать все случии и вариации json формата ?
0
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
26.01.2013, 22:06  [ТС] 5
Цитата Сообщение от Avazart Посмотреть сообщение
Возможно задание стоит более конкретно разобрать строку заданного вида - то есть не учитывать все случии и вариации json формата ?
Возможно и так. Не знаю.
Задание звучало:Декодировать. С пояснением: разобрать строку на переменные и вывести внутренние параметры переменных. А что это такое и как это делать, я уже сама себе представила и начитала))))
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.01.2013, 23:57 6
Ну к примеру код из http://ru.wikipedia.org/wiki/JSON
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
{
   "firstName": "Иван",
   "lastName": "Иванов",
   "address": {
       "streetAddress": "Московское ш., 101, кв.101",
       "city": "Ленинград",
       "postalCode": 101101
   },
   "phoneNumbers": [
       "812 123-1234",
       "916 123-4567"
   ]
}
Что нужно выводить и как быть со вложенными объектами ?
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
27.01.2013, 00:05 7
JSON Spirit можно использовать впринципе, ибо ptree не покроет всё. Простая либа впринципе, использует парсинг в map/vector. Можно и свой написать через тот же spirit.
0
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
27.01.2013, 00:40  [ТС] 8
Цитата Сообщение от Avazart Посмотреть сообщение
Ну к примеру код из http://ru.wikipedia.org/wiki/JSON
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
{
   "firstName": "Иван",
   "lastName": "Иванов",
   "address": {
       "streetAddres": "Московское ш., 101, кв.101",
       "city": "Ленинград",
       "postalCode": 101101
   },
   "phoneNumbers": [
       "812 123-1234",
       "916 123-4567"
   ]
}
Что нужно выводить и как быть со вложенными объектами ?
Как я понимаю, при запросы от пользователя firstName должно вывести Иван, при запросы address выводить streetAddres": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101,
при запросе streetAddres должно выводить соответственно Московское ш., 101, кв.101 и тд...
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
27.01.2013, 01:02 9
Вот впринципе парсер на спирите. Как ни странно он действительно быстрый. Судя по тестам, он парсит 20 метров JSON-а 100 раз не намного медленнее, а то и быстрее библиотеки на С Yajl. Парсинг идет в стиле SAX, т.е. мы добавляем семантические действия и делаем что хотим в них. На память, выглядит вроде как-то так.

А так, писать парсер для JSON-а, который поддерживает все случаи, не пользуясь сторонними либами - тема долгая и нудная, вряд ли кто-то захочет делать это.

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
54
55
56
57
#include <boost/spirit/include/qi.hpp>
 
namespace qi = boost::spirit::qi;
 
auto real_ = qi::real_parser<double, qi::strict_real_policies<double>>();
 
template<typename Iter>
struct Json : qi::grammar<Iter>
{
    Json() : Json::base_type(json_)
    {
        using namespace qi;
 
        json_ = value_.alias();
        value_ = number_ |
            string_ |
            object_ |
            array_ |
            string("true") |
            string("false") |
            string("null");
        object_ = '{' >> -pairs_ >> '}';
        array_ = '[' >> -elements_ >> ']';
        elements_ = value_ % ',';
        pair_ = string_ >> ':' >> value_;
        pairs_ = pair_ % ',';
        string_ = qi::lexeme['"' >> qi::raw[*~char_('"')] >> '"'];
        number_ = real_ |
            uint_ |
            int_;
    }
    qi::rule<Iter> json_, number_, pair_, pairs_, elements_, array_, object_, value_;
    qi::rule<Iter, boost::iterator_range<Iter>()> string_;
};
 
void parse(const std::string& json)
{
    Json<std::string::const_iterator> grammar;
    auto begin = json.begin();
    if (!qi::parse(begin, json.end(), grammar) || begin != json.end())
    {
        std::cerr << "Error in parse" << std::endl;
    }
}
 
int main()
{
    const std::string json = "{"
        "\"name\":\"Vasya\","
        "\"age\":5,"
        "\"numbers\":[1,2,3],"
        "\"object\":{"
        "\"other\":\"end\"}"
        "}";
    parse(json);
    std::cin.get();
}
3
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
27.01.2013, 04:08 10

Не по теме:

Никто не посоветует парсер YAML во что-нибудь подобное boost.PropertyTree (a la DOM) (spirit не предлагать, я с ним так и не разобрался)?



Добавлено через 10 минут
Цитата Сообщение от Karry Посмотреть сообщение
шикарно и сложно..?
boost.PropertyTree - по мне так довольно простое и удобное решение, но не самое универсальное (и, возможно, быстрое). Если собрались вручную парсить json, то флаг вам в руки)
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
27.01.2013, 12:56 11
gray_fox, http://code.google.com/p/yaml-cpp/ вот впринципе, вроде нечто похожее.
1
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
28.01.2013, 03:45  [ТС] 12
gray_fox , не подскажете еще, как с помощью boost.PropertyTree выводить элементы массива?????
C++
1
2
3
4
5
6
7
"array1":[
"10",
"20",
"30",
"40",
"50"
]
но при использовании string const& value = config.get<string>("array1") выдает пустое место
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
28.01.2013, 04:28 13
Karry, так например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <sstream>
#include <string>
 
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
 
 
namespace bpt = boost::property_tree;
 
 
int main() {
   std::string const jsonString = "{\"array1\":[\"10\",\"20\",\"30\",\"40\",\"50\"]}";
   
   std::istringstream iss(jsonString);
   bpt::ptree config;
   bpt::read_json(iss, config);
   
   bpt::ptree const& arrayNode = config.get_child("array1");
   for (bpt::ptree::const_iterator it = arrayNode.begin(); it != arrayNode.end(); ++it) {
      std::cout << it->second.get<int>("") << std::endl;
   }
}
http://liveworkspace.org/code/NLPUO
1
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
28.01.2013, 04:57  [ТС] 14
gray_fox, А можно как то вывести элементы "json test"
C++
1
2
3
4
5
6
7
8
9
10
"json test":{
        "test string":"test value",
        "array1":[
            "10",
            "20",
            "30",
            "40",
            "50"
        ]
    },
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
28.01.2013, 05:16 15
Karry, не совсем понял. Что-то вроде этого?
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
#include <string>
 
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
 
 
namespace bpt = boost::property_tree;
 
 
void add_tabs(std::ostream & ostream, std::size_t t) {
   while (t-- != 0) {
      ostream << '\t';
   }
}
 
void print_children(std::ostream & ostream, bpt::ptree const& tree, std::size_t const t = 0) {
   for (bpt::ptree::const_iterator it = tree.begin(); it != tree.end(); ++it) {
      add_tabs(ostream, t);
      ostream << "'" << it->first << "':'" << it->second.data() << "'" << std::endl;
      if (!it->second.empty()) {
         print_children(ostream, it->second, t + 1);
      }
   }
}
 
 
int main() {
   std::string const jsonString = "{\"json test\":{"
        "\"test string\":\"test value\","
        "\"array1\":["
            "\"10\","
            "\"20\","
            "\"30\","
            "\"40\","
            "\"50\" "
        "]"
    "}}";
   
   std::istringstream iss(jsonString);
   bpt::ptree config;
   bpt::read_json(iss, config);
   
   bpt::ptree const& node = config.get_child("json test");
   print_children(std::cout, node);
}
http://liveworkspace.org/code/CASSn

Не по теме:

Уже страшновато становиться)

1
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
28.01.2013, 05:34  [ТС] 16
gray_fox, оцените пожалуйста!!!)) Наверно написано криво и неграмотно, но вот что получилось...
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include "stdafx.h"
#include <iostream>
#include <string>
#include <map>
#include <list>
#include <exception>
#include <vector>
#include <math.h>
using namespace std;
typedef vector<string> vector_string;
typedef map<string,string> map_string;
 
#include <sstream>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
namespace bpt = boost::property_tree;
 
class JSON  //jsonlint.com
{
private:
    string container;
public:
    JSON()
    {
        container = "{";
    }
    void add_pair(string name,string value)
    {
        container += "\"" +name + "\":\"" + value + "\",";
    }
    void add_vector(string name, vector_string params)
    {
          container+="\"" + name + "\":[";
          for (int i=0; i < params.size(); i++)
          {
              container+="\"" +params[i] + "\"";
              if (i<params.size()-1)
              {
                  container+=",";
              }
          }
          container+="],";
    }
    void add_map(string name, map_string params)
    {
        container += "\"" +name +"\":{";
        map_string::const_iterator begin = params.begin();
        for(;begin!=params.end(); begin++)
        {
            container+= "\"" + begin->first + "\":\"" +begin->second + "\",";
        }
        container = container.substr(0,container.length()-1)+ "},";
    }
    void add_JSON(string name, JSON * json)
    {
        container += "\"" +name + "\":" +json->get_as_string() +",";
    
    }
    string get_as_string()
    {
        return container.substr(0,container.length()-1)+ "}";
    }
};
void add_tabs(std::ostream & ostream, size_t t) 
{
   while (t-- != 0) 
   {
       ostream << '\t';
   }
}
 
void print_children(ostream & ostream, bpt::ptree const& tree, size_t const t = 0) 
{
   for (bpt::ptree::const_iterator it = tree.begin(); it != tree.end(); ++it) 
   {
       add_tabs(ostream, t);
       ostream <<  it->first << ":" << it->second.data() << endl;
       if (!it->second.empty()) 
       {
           print_children(ostream, it->second, t + 1);
       }
   }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    JSON a;
    a.add_pair("test string","test value");
    vector_string s;
    s.push_back("10");
    s.push_back("20");
    s.push_back("30");
    s.push_back("40");
    s.push_back("50");
    a.add_vector("array1", s);
    a.add_JSON("json test", &a);
    map_string ms;
    ms["green"] = "apple";
    ms["red"] = "cherry";
    ms["yallow"] = "banana";
    ms["black"] = "chernika";
    a.add_map("fruits",ms);
    cout << a.get_as_string() << endl;
    cout <<endl;
 
 
    string jsonStr = a.get_as_string();
    istringstream iss(jsonStr);
    bpt::ptree config;
    bpt::read_json(iss, config);
 
    while(true)
    {
        string var;   // путь к переменной через . (точку) (i.e. "one.two.three")
        cout << "Var: ";
        getline(cin,var);
        if(var == "test string")
        {
            string const& value = config.get<string>(var);
            cout << value << std::endl;
        }
        else if(var == "fruits")
        {
            const boost::property_tree::ptree& server = config.get_child(var);
            cout << "fruits\n"
                << "black:\t" << server.get<std::string>("black") << '\n'
                << "green:\t" << server.get<std::string>("green") << '\n'
                << "red:\t" << server.get<std::string>("red") << '\n'
                << "yallow:\t" << server.get<std::string>("yallow") << '\n';
        }
        else if(strcmp("fruits.**",var.c_str())<0)
        {
            string const& value = config.get<string>(var);
            cout << value << std::endl; 
        }
        else if(var == "array1")
        {
            bpt::ptree const& arrayNode = config.get_child(var);
            for (bpt::ptree::const_iterator it = arrayNode.begin(); it != arrayNode.end(); ++it)
            {
                cout << it->second.get<int>("") << endl;
            }
        }
        else if(var == "json test")
        {
            bpt::ptree const& node = config.get_child("json test");
            print_children(cout, node);
        }
    }
    return 0;
}
последний вывод json test так и не заработал(
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
28.01.2013, 20:17 17
Karry, не очень понятно, зачем создавать строку с json, что бы потом её парсить в propety_tree, можно ведь сразу туда добавлять:
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
#include <iostream>
#include <sstream>
#include <string>
 
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
 
 
namespace bpt = boost::property_tree;
 
 
int main() {
   bpt::ptree config;
   
   config.put("test string", "test value");
   
   bpt::ptree & arrayNode = config.put("array1", "");
   for (std::size_t i = 1; i <= 5; ++i) {
      std::ostringstream oss;
      oss << (i * 10);
      std::string const& str = oss.str();
      arrayNode.push_back(bpt::ptree::value_type("", bpt::ptree(str)));
   }
   
   config.push_back(bpt::ptree::value_type("json test", config));
   
   config.put("fruits.green"  , "apple");
   config.put("fruits.red"    , "cherry");
   config.put("fruits.yellow" , "banana");
   config.put("fruits.black"  , "bilberry");
   
   bpt::write_json(std::cout, config);
}
http://liveworkspace.org/code/4eelSX

Добавлено через 1 минуту

Не по теме:

Да, массивы добавляются черти знает как...

1
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
28.01.2013, 20:22  [ТС] 18
Цитата Сообщение от gray_fox Посмотреть сообщение
Karry, не очень понятно, зачем создавать строку с json, что бы потом её парсить в propety_tree, можно ведь сразу туда добавлять:
Строка json c таким ее заполнением, была мне дана преподавателем, мне нужно произвести с ней вот такие работы и махинации))

Добавлено через 1 минуту
Цитата Сообщение от gray_fox Посмотреть сообщение
Не по теме:
Да, массивы добавляются черти знает как...
а можно как нибудь переделать вывод массивов????? например если разделить вывод строки "test string" и "array1" ... там незнаю, вывод первого узла, вывод второго....... или такого нет?
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
28.01.2013, 21:00 19
Цитата Сообщение от Karry Посмотреть сообщение
а можно как нибудь переделать вывод массивов????? например если разделить вывод строки "test string" и "array1" ... там незнаю, вывод первого узла, вывод второго....... или такого нет?
Если имеется ввиду взять значение массива по индексу, то нет, из коробки так нельзя (по крайней мере я не знаю как), придётся сначала искать узел-предок для элементов массива, потом уже брать н-й элемент. Вообще по простому можно как-то так сделать:
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
#include <iostream>
#include <sstream>
#include <string>
 
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
 
 
namespace bpt = boost::property_tree;
 
 
int main() {
   bpt::ptree config;
   
   config.put("test string", "test value");
   
   bpt::ptree & arrayNode = config.put("array1", "");
   for (std::size_t i = 1; i <= 5; ++i) {
      std::ostringstream oss;
      oss << (i * 10);
      std::string const& str = oss.str();
      arrayNode.push_back(bpt::ptree::value_type("", bpt::ptree(str)));
   }
   
   config.push_back(bpt::ptree::value_type("json test", config));
   
   config.put("fruits.green"  , "apple");
   config.put("fruits.red"    , "cherry");
   config.put("fruits.yellow" , "banana");
   config.put("fruits.black"  , "bilberry");
   
  
   std::string path;
   while (std::getline(std::cin, path)) {
      std::cout << "Query for '" << path << "':" << std::endl;
      
      boost::optional<bpt::ptree &> result = config.get_child_optional(path);
      if (result) {
         bpt::ptree const& node = result.get();         
         if (node.empty()) {
            std::cout << node.data() << std::endl;
         } else {
            bpt::write_json(std::cout, node);
         }
      } else {
         std::cout << "'" << path << "': no such var" << std::endl;
      }
   }
}
http://liveworkspace.org/code/1z070U

Добавлено через 21 минуту

Не по теме:

Прошлый раз забыл "publish" нажать, код был не доступен


Может ещё так сойдёт:
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
#include <iostream>
#include <sstream>
#include <string>
 
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
 
 
namespace bpt = boost::property_tree;
 
 
int main() {
   bpt::ptree config;
   
   config.put("test string", "test value");
   
   bpt::ptree & arrayNode = config.put("array1", "");
   for (std::size_t i = 1; i <= 5; ++i) {
      std::ostringstream oss;
      oss << (i * 10);
      std::string const& str = oss.str();
      arrayNode.push_back(bpt::ptree::value_type("", bpt::ptree(str)));
   }
   
   config.push_back(bpt::ptree::value_type("json test", config));
   
   config.put("fruits.green"  , "apple");
   config.put("fruits.red"    , "cherry");
   config.put("fruits.yellow" , "banana");
   config.put("fruits.black"  , "bilberry");
   
  
   std::string path;
   while (std::getline(std::cin, path)) {
      std::cout << "Query for '" << path << "':" << std::endl;
      
      boost::optional<bpt::ptree &> result = config.get_child_optional(path);
      if (result) {
         bpt::ptree const& node = result.get();         
         bpt::path lastTag = bpt::path(path).reduce();         
         bpt::ptree result;
         result.add_child(lastTag, node);         
         bpt::write_json(std::cout, result);
      } else {
         std::cout << "'" << path << "': no such var" << std::endl;
      }
   }
}
http://liveworkspace.org/code/4jaTF7
1
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 21
28.01.2013, 21:06  [ТС] 20
gray_fox, Спасибо большое, чуть позже попробую, а то надо курсовую по с++ еще делать=((( =)
0
28.01.2013, 21:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2013, 21:06
Помогаю со студенческими работами здесь

Присвоить значение наименьшего элемента массива переменной М1, номер строки, где находится этот элемент, - переменной Т, номер столбца - переменной С
Массив С действительных чисел имеет 5 строк и 11 столбцов. Присвоить значение наименьшего элемента...

Android json, передача переменной
Здравствуйте. В android приложение формирую json файл, как его в php разобрать? Что я делаю не так?...

Создание переменной с именем из значения другой переменной
Доброго времени суток. Существует ли вообще такая возможность, как создание новой переменной из...

Прохождение переменной JSON через конструктор
Всем привет. Может, вы увидите, где ошибка? Нужно создать вызвать через класс в конструкторе...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru