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

Программа слетает - C++

Восстановить пароль Регистрация
 
TheWonderer
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 8
06.11.2013, 22:24     Программа слетает #1
Здравствуйте, взял код из книги, но при выполнении программа слетает после вода слова и нажатия Enter

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
#include <iostream>
#include <cstring>
using namespace std;
 
   char *keyword[4][2] = {
  "for", "for(init; cond; inc)",
  "if", "if(cond) ... else ...",
  "switch", "switch(var) { case-list }",
  "while", "while(cond) ..." };
  
  int main()
  {
    char str[80];
    int i;
    
    cout << "Enter keyword: ";
    cin >> str;
    
    for(i=0; *keyword[i][0]; i++)
     {
       if(!strcmp(keyword[i][0], str))
         cout << keyword[i][1] << endl;
     }
     
     return 0;
  }
не могу понять что не так...?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2013, 22:24     Программа слетает
Посмотрите здесь:

C++ Ведется набор цифр и надо чтобы программа из него сама сообразило число. То есть что бы программа сама раскидывала их по разрядам.
Первая программа. Код не компилируется и не запускается программа. C++
C++ Пользователь вводит 10 чисел программа должна выдать 2 максимальных(берём от 1 до 10,если выпадает 2 10,то программа должна выдать 2 10,а не 10,9)
Слетает прога при присваивании разименованованному указателю C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Водяной Змей
Заблокирован
06.11.2013, 22:36     Программа слетает #2
Консоль всегда автоматически закрывается, если не добавить ожидание ввода или нажатия клавиши.

Включите в проект заголовочный файл conio и перед return вызывайте getch() или _getch().
TheWonderer
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 8
06.11.2013, 22:46  [ТС]     Программа слетает #3
не в этом дело, а вот вчем после запуска появляется запрос "ввести слово" я к примеру вел for потом отображается справка и программа вылетает (выдает ошибку) http://www.cyberforum.ru/attachment....1&d=1383763522
Миниатюры
Программа слетает  
Водяной Змей
Заблокирован
06.11.2013, 23:34     Программа слетает #4
Что за странное условие цикла - *keyword[i][0]?
Я так понял, Вам надо, чтобы цикл повторился 4 раза. А это i<4 и всё.
nord_v
227 / 176 / 69
Регистрация: 22.08.2013
Сообщений: 723
07.11.2013, 05:39     Программа слетает #5
Что должна делать программа? Что за массив?:
C++
1
2
3
4
5
char *keyword[4][2] = {
  "for", "for(init; cond; inc)",
  "if", "if(cond) ... else ...",
  "switch", "switch(var) { case-list }",
  "while", "while(cond) ..." };
fridi
-8 / 40 / 1
Регистрация: 21.09.2009
Сообщений: 145
07.11.2013, 07:26     Программа слетает #6
C++ (Qt)
1
2
3
4
5
6
7
   for(i=0;  i < sizeof(keyword)/sizeof(keyword[0]); i++)
     {
       if(!strcmp(keyword[i][0], str))
         cout << keyword[i][1] << endl;
     }
     
    getch();
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
07.11.2013, 07:40     Программа слетает #7
C++
1
2
3
4
5
6
  const char **keyword[2] = {
  { "for", "for(init; cond; inc)" },
  { "if", "if(cond) ... else ..." },
  {"switch", "switch(var) { case-list }" },
  {"while", "while(cond) ..."},
  { NULL, NULL} };
TheWonderer
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 8
07.11.2013, 09:17  [ТС]     Программа слетает #8
Понял свою ошибку, забыл до бавить нулевую строку.
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
#include <iostream>
#include <cstring>
#include <conio.h>
using namespace std;
 
   char *keyword[][2] = {
  "for", "for(init; cond; inc)",
  "if", "if(cond) ... else ...",
  "switch", "switch(var) { case-list }",
  "while", "while(cond) ...",
  "", "" }; // нулевая строка
  
  int main()
  {
    char str[80];
    int i;
    
    cout << "Enter keyword: ";
    cin >> str;
    
    for(i=0; *keyword[i][0]; i++) // *keyword[i][0] - проверяет на нулевое значение.
     {
       if(!strcmp(keyword[i][0], str))
         cout << keyword[i][1] << endl;
     }
     getch();
     return 0;
  }
Всем спасибо.
Yandex
Объявления
07.11.2013, 09:17     Программа слетает
Ответ Создать тему
Опции темы

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