Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
6 / 6 / 7
Регистрация: 16.05.2013
Сообщений: 351
1

Коррекция

22.07.2013, 10:04. Показов 1815. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <cstring>
int main()
{
    using namespace std;
    char charr[20];
    string str;
 
    cout << "Lenght of string in charr before input: " << strlen(charr) << endl;
    cout << "Lenght of string in str before input: " << str.size() << endl;
    cout << "Enter a line of text:\n";
    cin.getline(charr, 20);
    cout << "You entered: " << charr << endl;
    cout << "Enter another line of text:\n";
    getline(cin, str);
    cout << "You entered: " << str << endl;
    cout << "Lenght of string in charr after input: " << strlen(charr) << endl;
    cout << "Lenght of string in str after input: " << str.size() << endl;
    system("pause");
    return 0;
}
Должно выйти:
Lenght of string in charr before input: 27
Lenght of string in str before input: 0
Enter a line of text:
peanut butter
You entered: peanut butter
Enter another line of text:
blueberry jam
You entered: bueberry jam
Lenght of string in charr after input: 13
Lenght of string in str after input: 13

Выходит:
Lenght of string in charr before input: 31
Lenght of string in str before input: 0
Но в тоге выходит по 13 в последних строках.
Почему сначала не то число?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.07.2013, 10:04
Ответы с готовыми решениями:

Перспективная коррекция в 2D
Всем привет. Надеюсь это не противоречит правилам форума. Я создал эту тему в разделе...

Коррекция строк
Как из строки, в которую входят и цифры и буквы, убрать все буквы и оставить цифры? Знаю только...

Коррекция перевода float > char[]
Вечер добрый! Задача такова - из float'а получить строку, но после запятой нужно оставить N знаков....

2-10 коррекция
хто має якісь накидки на 2-10 корекцію:)

21
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
22.07.2013, 10:09 2
Цитата Сообщение от SnapeEye Посмотреть сообщение
Почему сначала не то число?
Переменные не инициализированы. Почему должно выводить "то число" ?
0
6 / 6 / 7
Регистрация: 16.05.2013
Сообщений: 351
22.07.2013, 11:04  [ТС] 3
Цитата Сообщение от lazybiz Посмотреть сообщение
Переменные не инициализированы. Почему должно выводить "то число" ?
это пример из книги, ввел всё правильно, перепроверил, но выходит другое, не было такого ранее
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
22.07.2013, 11:05 4
Если этот пример в точности как из книги - тогда выкинь эту книгу, она тебя хорошему не научит.
0
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
22.07.2013, 11:07 5
Цитата Сообщение от SnapeEye Посмотреть сообщение
char charr[20];
Цитата Сообщение от SnapeEye Посмотреть сообщение
Должно выйти:
Lenght of string in charr before input: 27
такого не может быть
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
22.07.2013, 11:08 6
Цитата Сообщение от SnapeEye Посмотреть сообщение
это пример из книги
Может там написано что это пример того как делать не надо!?
0
6 / 6 / 7
Регистрация: 16.05.2013
Сообщений: 351
22.07.2013, 13:42  [ТС] 7
Цитата Сообщение от BigLow Посмотреть сообщение
такого не может быть
честно, не я придумал
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
22.07.2013, 13:44 8
Цитата Сообщение от SnapeEye Посмотреть сообщение
это пример из книги
Из какой книги? Если есть электронный вариант кинь ссылку.
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
22.07.2013, 14:12 9
Тут я согласен с lazybiz: если этот код точь-в-точь переписан из книги - выкинь книгу в Корзину, она тебя хорошему не научит. И огласи, плз, автора и название, чтобы другие не повелись.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.07.2013, 14:41 10
Цитата Сообщение от BigLow Посмотреть сообщение
такого не может быть
Может.
Цитата Сообщение от SnapeEye Посмотреть сообщение
Почему сначала не то число?
Потому что массив неинициализирован. srtlen() будет искать в массиве терминальный ноль, а так как его там нет, то выйдет за границу массива и где-то в памяти найдет '\0'. Где найдет, зависит от компилятора и от случая. У меня в студии выводит 31, в mingv - 1.
0
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
22.07.2013, 14:50 11
Это пример из книжки Стивена Праты. SnapeEye, прочитай внимательно пояснение к коду и все встанет на свои места.

Кликните здесь для просмотра всего текста
"Где именно встретится нулевой символ в неинициализированном массиве, определяется случаем, поэтому весьма вероятно, что при запуске этой программы вы получите другое значение".
0
6 / 6 / 7
Регистрация: 16.05.2013
Сообщений: 351
26.07.2013, 11:06  [ТС] 12
Цитата Сообщение от CheshireCat Посмотреть сообщение
Тут я согласен с lazybiz: если этот код точь-в-точь переписан из книги - выкинь книгу в Корзину, она тебя хорошему не научит. И огласи, плз, автора и название, чтобы другие не повелись.
Стивен Прата: Язык программирования C++ 6-е издание
0
CheshireCat
26.07.2013, 11:46
  #13

Не по теме:

Спасибо. Не читал и читать не буду.

0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
26.07.2013, 11:52 14
SnapeEye, почитай лучше Страуструпа.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2013, 15:32 15
Цитата Сообщение от CheshireCat Посмотреть сообщение
Тут я согласен с lazybiz: если этот код точь-в-точь переписан из книги - выкинь книгу в Корзину, она тебя хорошему не научит. И огласи, плз, автора и название, чтобы другие не повелись.
О чём, вообще, разговор? В книге приведён пример, как не нужно делать, и объяснено почему. Что, такие примеры недопустимы в книгах? Если ТС не понял суть примера, то это его проблемы, книга тут не при чём.
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
26.07.2013, 16:14 16
Цитата Сообщение от alsav22 Посмотреть сообщение
О чём, вообще, разговор?
А разговор как раз о том, что ТС предоставил этот код как рабочий. В связи с чем был сделан вывод что он учится по плохой литературе. К тому же саму книгу он вначале не обозначил.

Добавлено через 57 секунд
Цитата Сообщение от alsav22 Посмотреть сообщение
Если ТС не понял суть примера, то это его проблемы, книга тут не при чём.
С этим не могу не согласиться.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
26.07.2013, 16:16 17
Ну как бы вот еще:
Цитата Сообщение от SnapeEye Посмотреть сообщение
cout << "Lenght of string in charr before input: " << strlen(charr) << endl;
0
castaway
26.07.2013, 16:18
  #18

Не по теме:

Ну.., как бы слово "before" не говорит о том что это пример неправильного кода.

0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2013, 16:29 19
Цитата Сообщение от SnapeEye Посмотреть сообщение
Стивен Прата: Язык программирования C++ 6-е издание
2011 года? Если можно страницу, что-то там я не нахожу этого кода.
0
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
26.07.2013, 16:47 20
Цитата Сообщение от alsav22 Посмотреть сообщение
Если можно страницу
151 - 152. 6 издание 2012 год.
0
26.07.2013, 16:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.07.2013, 16:47
Помогаю со студенческими работами здесь

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

Гамма коррекция
Испрашиваю вашего совета, гуру! ;-) Коллеги, у меня возник тупик следующего рода, работаю с...

Биоакустическая коррекция
добрый день. задумалось сделать сию штуку, информации кроме общего описания,по ней практически...

Небольшая коррекция
l = l1 = s = 0 for i in l: for j in l1: if i == j: s =...


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

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