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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
zewer
1119 / 810 / 82
Регистрация: 07.01.2011
Сообщений: 5,938
#1

Вывод результата на экран - C++

20.04.2012, 23:58. Просмотров 2209. Ответов 44
Метки нет (Все метки)

Всем привет, нуждаюсь в помощи!
Написал прогу, она еще не на 100% готова, но при прекопиляции дает ошибку в последних 2 строках кода

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 <conio.h>
#include "iostream"
#include "fstream"
using namespace std;
 
struct List
{
    char ar[100];
};
 
void main ()
{
    setlocale (LC_ALL,"Ukrainian");
    List *l;
    int h;
    int key = 0;
    int tmp;
    int m = 37;
    char *ar[37];
    ifstream in("C:\\data.txt",ios::in);
    cout << "\t\t\tХеш-таблиця № 1\n";
 
    while(!in.eof())
    {
        cout << "\n\n";
        l = new List [100];
        in >> l->ar;
        cout << "Зчитане слово: " << l->ar;
        while ( l->ar[key] != NULL )
            key++;
        cout << "\nСлово (ключ) мiстить " << key << " слiв\n";
        h = (7*key)%37;
        cout << "\th(key) = " << h << "\n\n";
        if (ar[h] == NULL)
        {
            ar[h] = l->ar;
            cout << "\tСлово занесено у хеш-таблицю\n";
        }
        else
        {
            cout << "Слово не може бути занесеним у хеш-таблицю, оскiльки виявлено колiзiю\n";
        }
        key = 0;
    }
    in.close();
    for (int i = 0; i < m; i++)           /// сдесь ошибка
        cout << *ar[i];         //// сдесь ошибка
}
помогите правильно виводить масив, в котором в будущем при обработке входной инфы будет результат

Коротко по програме:
Вх данные местяться в data.txt , я их копирую в прогу, работаю с ними, по формуле делаю хеш-таблицу, и в масиве ar[i] будет меститься сама таблица, но при виводе на экран - прога получает crash, помогите пжл)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2012, 23:58     Вывод результата на экран
Посмотрите здесь:

Вывод результата - C++
решил такую задачу, мозг кипит, потому прошу: РАЗЪЯСНИТЕ как вывести ответ не просто числа а именно чтобы указывалось значение Z1 и Z2 ...

Вывод результата - C++
Прошу совета. Сперва думал, что где-то в коде ошибка, но потом создал элементарную программу, типа 2+3 и вывел ответ на экран. Естественно...

Вывод результата - C++
Как вывести результат этой программы в excel, чтобы , то что было в черном окошке , выводилось еще и в екселе? #include &quot;stdafx.h&quot; ...

Вывод дробного результата - C++
как сделать так,чтобы если получается дробный результат он и выводился,а не целое число? #include &lt;iostream&gt; using namespace std; ...

не правильный вывод результата - C++
Доброго времени суток! Возникла проблема мне нужно чтобы программа проверяла, представляют ли элементы введенного с клавиатуры массива...

Вывод результата поиска - C++
Программа считывает из файла данные, потом осуществляет поиск по Id - номеру и должна вывести строку с Id, именем, фамилией и пр., но в...

некорректный вывод результата - C++
Суть программы: Пользователь вводит число (например 4), программа печатаем квадрат со сторонами соответственно 4*4 в виде * (звездочек)....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zewer
1119 / 810 / 82
Регистрация: 07.01.2011
Сообщений: 5,938
21.04.2012, 19:42  [ТС]     Вывод результата на экран #31
Цитата Сообщение от Avazart Посмотреть сообщение
zewer, блин так там скорее всего у вас бесконечный цикл из за того что файла нет в нужном месте, а проверку на открытие вы не предусмотрели (хотя я указал вам на эту ошибку!!!)
нет, нету бесконченого цикла, у меня когда доходит к рядку :
C++
1
2
    for (int i = 0; i < m; i++)
        cout << (*ar)[i];
дает краш
тоже самое если в пошаговом режиме, никакого цикла нету

Добавлено через 1 минуту
Цитата Сообщение от Xavier Посмотреть сообщение
попробуй запустить в режиме отладки(debug) оно должно показать где происходит ошибка
запустил в дебаггере: в посл рядке, а имеенно напротив cout << (*ar)[i]; дает ошибку
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
21.04.2012, 19:44     Вывод результата на экран #32
вот что пишет в конце программы если это не правильно то дело в алгоритме но я в нем не разбирался(что именно и как оно должно делать)
Миниатюры
Вывод результата на экран  
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
21.04.2012, 19:45     Вывод результата на экран #33
А какой компилятор?
zewer
1119 / 810 / 82
Регистрация: 07.01.2011
Сообщений: 5,938
21.04.2012, 19:51  [ТС]     Вывод результата на экран #34
Цитата Сообщение от Xavier Посмотреть сообщение
конечно надо проверять открывается ли файл Avazart прав

попробуй написать после открытия файла
C++
1
2
3
if (!in) {
        std::cout<<"Can not open the file!!\n";
    }
да файл у меня все норм. у вашем коде тоже не было проверки
скажите пжл, что у вас выводит в конечном результате, вконце должно вивести масив из 37 строк, и там должны быть записанными выходные данные... я просто подозреваю что прога у вас работает, но ничего не выводит

Добавлено через 1 минуту
Цитата Сообщение от Xavier Посмотреть сообщение
вот что пишет в конце программы если это не правильно то дело в алгоритме но я в нем не разбирался(что именно и как оно должно делать)
это что то не то выводит
у меня Microsoft Visual Studio 2010

Добавлено через 1 минуту
у меня не входит в:
C++
1
2
3
4
5
        if (ar[h] == NULL)
        {
            ar[h] = l->ar;
            cout << "\tСлово занесено у хеш-таблицю\n";
        }
т.е. компилятор считает что масив уже не пустой
и вконце исполнении программы идет краш

Добавлено через 1 минуту
может по скайпе пообщаемся? если что, я wow_sector1111_wow_cs_source
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,454
Записей в блоге: 17
21.04.2012, 19:55     Вывод результата на экран #35
да файл у меня все норм. у вашем коде тоже не было проверки
Ну него наверное файл на месте поэтому и без проверки проканало..
Я поначалу файл не создал, бесконечный цикл тоже погнал...
и вконце исполнении программы идет краш
Компилятор считает что программа долго крутится на одном месте потому и прерывает её что непонятно? Как можно было незаметить что в консоль постоянно что-то выводится в объеме большем чем надо?
zewer
1119 / 810 / 82
Регистрация: 07.01.2011
Сообщений: 5,938
21.04.2012, 19:57  [ТС]     Вывод результата на экран #36
Цитата Сообщение от Avazart Посмотреть сообщение
Ну него наверное файл на месте поэтому и без проверки проканало..
Я поначалу файл не создал, бесконечный цикл тоже погнал...

Компилятор считает что программа долго крутится на одном месте потому и прерывает её что непонятно? Как можно было незаметить что в консоль постоянно что-то выводится в объеме большем чем надо?
у меня в консоль выводит как раз то что надо.
вот возьмите файл с данными что я давал, и проверьте, будет выводить как раз много инфы
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,454
Записей в блоге: 17
21.04.2012, 20:00     Вывод результата на экран #37
Если у меня работает и работает у Xavier, то вывод только один...
zewer
1119 / 810 / 82
Регистрация: 07.01.2011
Сообщений: 5,938
21.04.2012, 20:14  [ТС]     Вывод результата на экран #38
[IMG]http://s019.***********/i602/1204/01/4a762e815271.jpg[/IMG]

как прога зашла туда? если по вашему там бесконечный цикл? интересно, правда
вот бросаю свою .exe, которую сделала прога

http://zalil.ru/33113854

скачайте .exe и скажите нету ли краша

Добавлено через 10 минут
какие у вас компилятори?
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
21.04.2012, 20:16     Вывод результата на экран #39
У меня QT но не в этом суть я кажется понял в чем ошибка но пока не знаю как исправить
zewer
1119 / 810 / 82
Регистрация: 07.01.2011
Сообщений: 5,938
21.04.2012, 20:25  [ТС]     Вывод результата на экран #40
Цитата Сообщение от Xavier Посмотреть сообщение
У меня QT но не в этом суть я кажется понял в чем ошибка но пока не знаю как исправить
мне вот главное что б прога выводила "посортирование" слова в масиве.скорей всего у меня синтаксичсеки бред написан, алгоритм весь есть, в проге написан, если знаете, можги б как то сделать подругому? например без структур ??

щас дам подробное обьяснение
вот смотрите в коментах по строках кода написал краткий алгоритм:

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
#include <conio.h>
#include "iostream"
#include "fstream"
using namespace std;
 
struct List
{
    char ar[100];
};
 
void main ()
{
    setlocale (LC_ALL,"Ukrainian");
    List *l;
    int h;
    int key = 0;
    int m = 37;
    char *ar[37];
    ifstream in("data.txt",ios::in); // открываем файл для чтения
    if (!in) {
        cout<<"Can not open the file!!\n";
    }
    cout << "\t\t\tХеш-таблиця № 1\n";
 
    while(in && !in.eof())
    {
        cout << "\n\n";
        l = new List [100];
        in >> l->ar; //первое слово из файла записываем в промежуточный масив
        cout << "Зчитане слово: " << l->ar; // выводим на экран это слово
        while ( l->ar[key] != NULL ) // считаем количество букв в скопированом слове из файла
            key++;//
        cout << "\nСлово (ключ) мiстить " << key << " слiв\n";//пишем на экран к-во букв
        h = (7*key)%37;//по формуле находим нужный номер в масиве строк
        cout << "\th(key) = " << h << "\n\n";
        if (ar[h] == NULL)//если под найденым индексом в масиве строк, строка пуста, пишем туда наше слово
        {
            ar[h] = l->ar;//пишем слово
            cout << "\tСлово занесено у хеш-таблицю\n";
        }
        else
        {
            cout << "Слово не може бути занесеним у хеш-таблицю, оскiльки виявлено колiзiю\n";//если масив под данным индексом уже заполнен, то надо делать по другой ф-ле, я ее потом сделаю, но проблема не в том
        }
        key = 0;//онуляем вконце цикла к-во букв в слове, для подсчета нового к-ва букв следующего слова
    }//длиться цикл пока не обработаються все слова в файле data.txt
    in.close();
    for (int i = 0; i < m; i++)           
        cout << (*ar)[i];        
}
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
21.04.2012, 20:33     Вывод результата на экран #41
А ну ка запусти вот это
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
#include <conio.h>
#include <iostream>
#include <fstream>
using namespace std;
 
struct List
{
    char ar[100];
};
 
int main ()
{
    setlocale (LC_ALL,"Ukrainian");
    List *l;
    int h,i=0;
    int key = 0;
    int tmp;
    int m = 37;
    char *ar[37];
    l = new List [100];
    for (int j=0;j<37;j++) { ar[j]=new char[37]; ar[j]="";  }
 
    ifstream in("C:\\data.txt",ios::in | ios::binary);
    cout << "\t\t\tХеш-таблиця № 1\n";
 
    while(!in.eof())
    {
        cout << "\n\n";
 
        in >> l[i].ar;
        cout << "Зчитане слово: " << l[i].ar;
        while ( l[i].ar[key] != NULL )
            key++;
        cout << "\nСлово (ключ) мiстить " << key << " слiв\n";
        h = (7*key)%37;
        cout << "\th(key) = " << h << "\n\n";
        if (ar[i] == "")
        {
 
            ar[h] = l[i].ar;
            cout << "\tСлово занесено у хеш-таблицю\n";
 
 
 
        }
        else
        {
            cout << "Слово не може бути занесеним у хеш-таблицю, оскiльки виявлено колiзiю\n";
        }
        key = 0; i++;
    }
 
    in.close();
    for ( i = 0; i < m; i++)
        cout << ar[i];
}
Добавлено через 2 минуты
Если это заработает то сам алгоритм я не трогал но ошибки в мелочах(типа на что указывает указатель) сыграли свою роль
zewer
1119 / 810 / 82
Регистрация: 07.01.2011
Сообщений: 5,938
21.04.2012, 20:40  [ТС]     Вывод результата на экран #42
л, офигенно, все ок, даже вконце вывело масив с правильним результатом))

Добавлено через 5 минут
я еще буду доделивать прогу, если что то не будет получаться, я отпишу сюда, не забывайте эту тему? хорошо??
пока очень благодарен ))
Avazart
Эксперт С++
7122 / 5299 / 273
Регистрация: 10.12.2010
Сообщений: 23,454
Записей в блоге: 17
21.04.2012, 20:41     Вывод результата на экран #43
как прога зашла туда? если по вашему там бесконечный цикл? интересно, правда
А другие ошибки никто не исключал, учитывая еще небрежное обращение с памятью
C++
1
while ( l->ar[key] != NULL )
Что это вообще за конструкция?
zewer
1119 / 810 / 82
Регистрация: 07.01.2011
Сообщений: 5,938
21.04.2012, 20:43  [ТС]     Вывод результата на экран #44
Цитата Сообщение от Avazart Посмотреть сообщение
А другие ошибки никто не исключал, учитывая еще небрежное обращение с памятью
C++
1
while ( l->ar[key] != NULL )
Что это вообще за конструкция?
работает до тих пор, пока в масиве, что содержит слово, не будет NULL, т.е. терминальный нуль
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2012, 20:47     Вывод результата на экран
Еще ссылки по теме:

Неправильный вывод результата - C++
Всем Доброго времени суток, извините за такое название темы, другого не придумал.. Проблема в том, что я не могу понять как вывести...

Корректный вывод результата - C++
Здравствуйте, нужна помощь в корректном(красивый, в данном случае) выводе результата на экран. Написал алгоритм Дейкстры #include...

Вывод результата работы программы - C++
Всем добрый вечер., столкнулся со след проблемой: #include &lt;io.h&gt; #include&lt;iostream&gt; #include &lt;stdio.h&gt; int main(){ ...

Вывод результата вне цикла - C++
Написать программу, вычисляющую НОД (наибольший общий делитель) двух целых чисел Все работает,только вывод надо сделать вне цикла....

Считывание строки и вывод результата - C++
Строка является корректным идентификатором, если она содержит только строчные или прописные латинские буквы, цифры, символ &quot;_&quot;, и не...


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

Или воспользуйтесь поиском по форуму:
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
21.04.2012, 20:47     Вывод результата на экран #45
Цитата Сообщение от zewer Посмотреть сообщение
я еще буду доделивать прогу, если что то не будет получаться, я отпишу сюда, не забывайте эту тему?
можешь в скайп обращаться если что нибудь надо будет
alexandr3367
потому что специально в эту тему я смотреть вряд ли буду так как их тут очень много)))
Yandex
Объявления
21.04.2012, 20:47     Вывод результата на экран
Ответ Создать тему
Опции темы

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