Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Aqua77
25 / 25 / 16
Регистрация: 13.07.2015
Сообщений: 433
#1

Где поставить вторую точку останова отладчика? - C++

15.08.2015, 00:05. Просмотров 566. Ответов 23
Метки нет (Все метки)

Поставьте точку останова Отладчика на оператор j=i и в цикле работы getline().

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
getline(char s[],int lim)
{
 int c,i;
 static int j;
  for(i=0;i<max-1&&(c=getchar())!=eof&&c!='\n';i++)
   s[i]=c;
   i++;
  s[i]='\0';
  j=i;     //Вот оператор j=i. Сюда ставим точку. Куда вторую точку? "в цикле работы getline()."- это где?
return(i);
}
 
int main()
{
 
  char s[max];
  for(int i=0; i<3; i++)
   {
  getline (s,max);
  static int b;
  b=1;
   }
getchar();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2015, 00:05
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Где поставить вторую точку останова отладчика? (C++):

ОС Windows инициировала точку останова - C++
Здравствуйте, помогите устранить ошибку при выполнении программы #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include...

ОС Windows инициировала точку останова в программе - C++
Писал программу для нахождения минимального пути из точки start(Х) в точку finish(Y) путём обхода графа в ширину. Во время отладки...

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

ОС Windows инициировала точку останова в kursach.exe - C++
Доброго времени суток! Проблема распространенная конечно, но в этом разобраться ни я сам, не с помощью преподавателя почему то не...

Ошибка. ОС Windows инициировала точку останова в файле - C++
Доброго всем времени суток. Есть задание : Найти самое большое слово в файле и подсчитать количество таких слов. Собственно написал...

ОС Windows инициировала точку останова в stroki.exe - C++
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;string&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; using namespace std; int main() ...

23
John Prick
831 / 764 / 154
Регистрация: 27.07.2012
Сообщений: 2,176
Завершенные тесты: 3
15.08.2015, 00:12 #2
Строка 19, не?
0
Aqua77
25 / 25 / 16
Регистрация: 13.07.2015
Сообщений: 433
15.08.2015, 00:15  [ТС] #3
Почему не 5? там тоже цикл
0
John Prick
831 / 764 / 154
Регистрация: 27.07.2012
Сообщений: 2,176
Завершенные тесты: 3
15.08.2015, 00:28 #4
В таком случае нужно более конкретная трактовка, что есть "цикл работы getline". По-моему, цикл внутри getline под это определение не подходит. Внутри getline могло бы быть и 100500 циклов.
0
ValeryS
Модератор
7020 / 5358 / 531
Регистрация: 14.02.2011
Сообщений: 18,078
15.08.2015, 00:35 #5
Цитата Сообщение от Aqua77 Посмотреть сообщение
getline(char s[],int lim)
Цитата Сообщение от Aqua77 Посмотреть сообщение
for(i=0;i<max-1
и кто такой max?и зачем нам lim?
0
Aqua77
25 / 25 / 16
Регистрация: 13.07.2015
Сообщений: 433
15.08.2015, 01:11  [ТС] #6
Цитата Сообщение от ValeryS Посмотреть сообщение
и кто такой max?и зачем нам lim?
в библиотеке это константная переменная размер 1000
0
Горелый
70 / 44 / 11
Регистрация: 20.03.2014
Сообщений: 197
15.08.2015, 01:15 #7
"в цикле работы getline()."
Я думаю что имеется в виду в тело цикла, тогда это будет строчка 6-ть
0
Aqua77
25 / 25 / 16
Регистрация: 13.07.2015
Сообщений: 433
15.08.2015, 01:15  [ТС] #8
И кстати чтобы не создавать новую тему. Я знаю что такое стековая память, это когда компилятор отводит конкретный объём памяти, которая определяется типом данных. А что такое регистры?
0
John Prick
831 / 764 / 154
Регистрация: 27.07.2012
Сообщений: 2,176
Завершенные тесты: 3
15.08.2015, 01:17 #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Aqua77 Посмотреть сообщение
А что такое регистры?
Регистры процессора. Физически находятся в самом процессоре, а не в оперативной памяти. Доступ быстрее, как правило.
1
ValeryS
Модератор
7020 / 5358 / 531
Регистрация: 14.02.2011
Сообщений: 18,078
15.08.2015, 01:19 #10
Цитата Сообщение от Aqua77 Посмотреть сообщение
А что такое регистры?
прочитай что такое процессоры,
регистры оне у них внутри
Цитата Сообщение от Aqua77 Посмотреть сообщение
в библиотеке это константная переменная размер 1000
а зачем в функцию передается lim который в ней не используется
0
Aqua77
25 / 25 / 16
Регистрация: 13.07.2015
Сообщений: 433
15.08.2015, 01:27  [ТС] #11
Цитата Сообщение от ValeryS Посмотреть сообщение
а зачем в функцию передается lim
Просто это код из учебника, где в в функции getchar, продемонстрирована работа static. Он мне говорит"Поставьте точку останова Отладчика на оператор j=i и в цикле работы getline()." Я и не пойму где что ставить.
0
ValeryS
Модератор
7020 / 5358 / 531
Регистрация: 14.02.2011
Сообщений: 18,078
15.08.2015, 01:37 #12
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Aqua77 Посмотреть сообщение
и в цикле работы getline().
Цитата Сообщение от Aqua77 Посмотреть сообщение
продемонстрирована работа static.
ну скорее всего в
Цитата Сообщение от Aqua77 Посмотреть сообщение
s[i]=c;
и обрати внимание на j
она не обнуляется при каждом вызове функции, а сохраняет свое значение
статическая переменная ведет себя так же как глобальная, с той лишь разницей, что видна только внутри блока где объявлена
например в функции main ты её не прочитаешь
1
Aqua77
25 / 25 / 16
Регистрация: 13.07.2015
Сообщений: 433
15.08.2015, 01:48  [ТС] #13
Цитата Сообщение от ValeryS Посмотреть сообщение
сохраняет свое значение
Кстати, может я позже сам пойму но, зачем сохранять значение переменной, если она видна только в 1 функции.
0
ValeryS
Модератор
7020 / 5358 / 531
Регистрация: 14.02.2011
Сообщений: 18,078
15.08.2015, 01:53 #14
Цитата Сообщение от Aqua77 Посмотреть сообщение
Кстати, может я позже сам пойму но, зачем сохранять значение переменной, если она видна только в 1 функции.
например в твоем примере(во каламбурчик) можно узнать длину всех строк
или вот например
C++
1
2
3
4
5
6
7
int func()
{
static int a=0;
a++;
....................
return a;
}
функция вернет сколько раз её вызывали
0
Aqua77
25 / 25 / 16
Регистрация: 13.07.2015
Сообщений: 433
15.08.2015, 02:07  [ТС] #15
Цитата Сообщение от ValeryS Посмотреть сообщение
можно узнать длину всех строк
Для этого нужена точка останова отладчик? Я не врублюсь никак.
Вот весь код:
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
#include <stdio.h>
#include <conio.h>
#define eof 26
#define max 100
 
getline(char s[],int lim)
{
 int c,i;
 static int j;
  for(i=0;i<max-1&&(c=getchar())!=eof&&c!='\n';i++)
   s[i]=c;
   i++;
  s[i]='\0';
  j=i;
return(j);
}
 
int main()
{
 
  char s[max];
  for(int i=0; i<3; i++)
   {
  getline (s,max);
  static int b;
  b=i;
   }
getchar();
}
Что вообще делает эта программа. Как я должен понять работу static из этого кода?
0
15.08.2015, 02:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2015, 02:07
Привет! Вот еще темы с ответами:

Странная ошибка ОС Windows инициировала точку останова - C++
Что могло вызвать такую ошибку ? При нажатии кнопки продолжить программа успешно работает дальше :) При нажатии кнопки...

Windows инициировала точку останова при очистке динамической памяти - C++
Собственно код, для самообразования перебрасывал адреса динамического массива в функции и издевался над ним как мог. #include &lt;iostream&gt; ...

Сортировка по возрастанию: ошибка "ОС Windows иницииализировала точку останова" - C++
Не знаю, в чем проблема. Написал такую программу #include &lt;stdio.h&gt; int n; int *a = new int; int T,i,s,count,k; int main() ...

Удалить первую половину элементов из динамического массива, вторую половину поставить на место первой - C++
удалить первую половину елементов из динамического массива , а вторую половину вставить на место первой.


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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