русский
Germany.ruForen → Архив Досок→ Programmierung

C++ Липман

330  1 2 3 alle
  dmitryd гость26.10.07 00:27
26.10.07 00:27 
Zuletzt geändert 26.10.07 00:33 (dmitryd)
Осваиваю книгу липмана С++ для начинающих, вот код из нее, цитирую:
В ответ на:
Вот пример простой законченной программы, считывающей по одному слову из cin и выводящей их в cout:
#include <iostream>
#include <string>
int main ()
{
string word;
while ( cin >> word )
cout << "Прочитано слово: " << word << "\n";
cout << "Все слова прочитаны!";
}

Таким макаром у меня эта програмка не заработала, пока я не дополнил и получилось это
В ответ на:
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string word;
while ( cin >> word ){
cout << "Прочитано слово: " << word << "\n";
}
cout << "Все слова прочитаны!";
}
Но вот беда програмка не выходит из цикла(да собсно и не должна судя по коду), или я чтото не правильно понимаю?
С самого начала книги попадаются ошибки в коде, то скобки пропущенны, то еще что нибудь. Вроде гугл говорит что автора стоит читать или?
#1 
Herzog постоялец26.10.07 09:24
Herzog
NEW 26.10.07 09:24 
in Antwort dmitryd 26.10.07 00:27
В ответ на:
да собсно и не должна судя по коду

Введите условия выхода из цикла, например при вводе слова 'exit'.
#2 
  Chipolino местный житель26.10.07 10:24
NEW 26.10.07 10:24 
in Antwort dmitryd 26.10.07 00:27
попробуй комбинацию Ctrl+D (Ctrl+Z в win) для окончания ввода .
#3 
  dmitryd гость26.10.07 11:28
NEW 26.10.07 11:28 
in Antwort Chipolino 26.10.07 10:24
Спасибо, контрл-д выводит из цикла, чет я сам не до пер. Возможно я это где то в книге пропустил...
#4 
  dmitryd гость26.10.07 11:30
NEW 26.10.07 11:30 
in Antwort Herzog 26.10.07 09:24
В ответ на:
Введите условия выхода из цикла, например при вводе слова 'exit'.
Спасибо, над этим тоже подумаю.
#5 
Murr коренной житель26.10.07 12:14
Murr
NEW 26.10.07 12:14 
in Antwort dmitryd 26.10.07 00:27
да собсно и не должна судя по коду
------
Добавленные тобой скобки ничего в приведенном коде не меняют.
Ну разве что обработка operator<<() неправильно выполняется транслятором.
#6 
  Chipolino местный житель26.10.07 12:52
NEW 26.10.07 12:52 
in Antwort Murr 26.10.07 12:14
В ответ на:
Ну разве что обработка operator<<() неправильно выполняется транслятором.

Пожалуйста поподробней .
#7 
  dmitryd гость26.10.07 12:56
NEW 26.10.07 12:56 
in Antwort Murr 26.10.07 12:14
хм, действительно без них работает, но без пространства имен нет...
Но я думаю мне это пока простительно, еще пару недель назад в программировании я ни имел никакого понятия...
Спасибо за подсказку.
#8 
Murr коренной житель26.10.07 13:00
Murr
NEW 26.10.07 13:00 
in Antwort Chipolino 26.10.07 12:52
Подумай сам. Там все достаточно прозрачно, включая место возможной ошибки.
#9 
Murr коренной житель26.10.07 13:21
Murr
NEW 26.10.07 13:21 
in Antwort dmitryd 26.10.07 12:56
Тебе нужно начать вырабатывать то, что называется Стандартом Кодирования.
Это как раз относится к использованию фигурных скобок там, где можно обойтись
без них. Думай об этом с точки зрения просмотра написанного кода и выбери
вариант который позволяет читать код наиболее быстро. И придерживайся его...
#10 
  Chipolino местный житель26.10.07 14:21
NEW 26.10.07 14:21 
in Antwort Murr 26.10.07 13:00
нельзя было просто написать что человек забыл про namespace std ,
нет пля , надо сумничать про оператор ...
#11 
  dmitryd гость26.10.07 14:38
NEW 26.10.07 14:38 
in Antwort Herzog 26.10.07 09:24
Уже час варианты перебираю, но чего-то не выходит
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string word;
while ( cin >> word )
cout << "Прочитано слово: " << word << endl;
else if (cin >> word >> "exit")
break;
cout << "Все слова прочитаны!";
}
Выдает вот что :
double.c: In function ‘int main()’:
double.c:9: ошибка: expected primary-expression before ‘else’
double.c:9: ошибка: expected `;' before ‘else’
#12 
  Chipolino местный житель26.10.07 14:43
NEW 26.10.07 14:43 
in Antwort dmitryd 26.10.07 14:38
if (cin>>word && word!="exit")
#13 
Simple Nothing is f*cked26.10.07 14:52
Simple
NEW 26.10.07 14:52 
in Antwort Chipolino 26.10.07 14:21
Он в очередной раз бредит.
#14 
  dmitryd гость26.10.07 14:58
NEW 26.10.07 14:58 
in Antwort Chipolino 26.10.07 14:43
В ответ на:
while ( cin >> word ){
cout << "Прочитано слово: " << word << endl;
if (cin>>word && word!="exit") break;
}
Спасибо, так заработало.
#15 
  Chipolino местный житель26.10.07 15:07
NEW 26.10.07 15:07 
in Antwort dmitryd 26.10.07 14:58
while ( cin >> word && word!="exit" ){
cout << "Прочитано слово: " << word << endl;
#16 
  dmitryd гость26.10.07 16:30
NEW 26.10.07 16:30 
in Antwort Chipolino 26.10.07 15:07
Вот и я сижу репу ломаю, действительно спорол
Последний вариан все корректно работает
#17 
Murr коренной житель26.10.07 21:56
Murr
NEW 26.10.07 21:56 
in Antwort Chipolino 26.10.07 14:21
Привыкай к тому, что Я объясняю только те моменты, которые самостоятельно освоить более чем тяжко... и то - не всегда. Привычка, понимаешь ли, учить самообучаться...
#18 
  Chipolino местный житель26.10.07 22:33
NEW 26.10.07 22:33 
in Antwort Murr 26.10.07 21:56
Я всё понял , о мудрейший !!!
#19 
Simple Nothing is f*cked27.10.07 01:42
Simple
NEW 27.10.07 01:42 
in Antwort Murr 26.10.07 21:56
Скорее, привычка 3,14здеть не по делу :)
#20 
Murr коренной житель27.10.07 20:11
Murr
NEW 27.10.07 20:11 
in Antwort Simple 27.10.07 01:42
"А только вы меня на враках не споймали!" (с)Шарапов.
#21 
  Chipolino местный житель28.10.07 16:49
NEW 28.10.07 16:49 
in Antwort Murr 27.10.07 20:11
Ловили... и не раз .
#22 
Simple Nothing is f*cked29.10.07 09:22
Simple
NEW 29.10.07 09:22 
in Antwort Chipolino 28.10.07 16:49
В ответ на:
#ifdef __cplusplus
if (Murr)
ignore();
#endif


#23 
  Chipolino местный житель29.10.07 09:32
NEW 29.10.07 09:32 
in Antwort Simple 29.10.07 09:22
Сейчас прийдет Murr и скажет что надо
вызывать статичексий метод Murr::ignore() .
#24 
  scorpi_ сам ты прохожий!29.10.07 11:05
NEW 29.10.07 11:05 
in Antwort Chipolino 29.10.07 09:32, Zuletzt geändert 29.10.07 19:39 (scorpi_)
Не, Murr::ignore() значит, что мурр всех игнорирует. Правильно так
class User
{
...
... read( const Post& post )
{
if ( "Murr" == post.author() && post.subject().contains( "C++" ) )
ignore();
...
}
...
}


#25 
Simple Nothing is f*cked29.10.07 11:29
Simple
NEW 29.10.07 11:29 
in Antwort scorpi_ 29.10.07 11:05
Умник хренов :-D
@Murr мы не со зла, чесслово :) But nobody like the smartass, you know.
#26 
Murr коренной житель29.10.07 11:52
Murr
NEW 29.10.07 11:52 
in Antwort scorpi_ 29.10.07 11:05
Правильно так
-----
class TUser - просто читабельнее...
#27 
Murr коренной житель29.10.07 11:53
Murr
NEW 29.10.07 11:53 
in Antwort Simple 29.10.07 11:29
@Murr мы не со зла, чесслово :)
------
Да Я вроде как и не возмущался... :)
#28 
Simple Nothing is f*cked29.10.07 12:12
Simple
NEW 29.10.07 12:12 
in Antwort Murr 29.10.07 11:52
Borland is dead :-D
#29 
  Chipolino местный житель29.10.07 12:16
NEW 29.10.07 12:16 
in Antwort Murr 29.10.07 11:52
В ответ на:
class TUser - просто читабельнее...

тупая привычка добавлять Т или C перед названием класса ?ИМХО.
#30 
AlexNek старожил29.10.07 18:59
AlexNek
NEW 29.10.07 18:59 
in Antwort Chipolino 29.10.07 12:16
А мне нравится, не надо думать как переменную называть
CUser User = ...
#31 
  scorpi_ сам ты прохожий!29.10.07 19:38
NEW 29.10.07 19:38 
in Antwort AlexNek 29.10.07 18:59
Следуешь соглашению - классы с большой, переменные с маленькой, и всё ясно и понятно. А во-вторых думать всегда полезно. Может там дополнительная инфа нужна? Например не User user = ...; a User forum_user = ...;
#32 
AlexNek старожил29.10.07 21:02
AlexNek
NEW 29.10.07 21:02 
in Antwort scorpi_ 29.10.07 19:38
Кому как нравится, я люблю все с большой. А "forum_user" будет наследован от СUser и переменная будет тогда ForumUser, очень удобно копи\пасте и букву долой. Только я не призываю никого следовать этим правилам. Все равно на работе пишешь как требуют, а как нравится когда для себя. Просто это не дурная привычка, а так лично мне удобнее. Конечно, не буду отрицать ,что мелкософт приложил к этому свою лапу.
#33 
Murr коренной житель29.10.07 23:03
Murr
NEW 29.10.07 23:03 
in Antwort Chipolino 29.10.07 12:16
Эта "привычка", а точнее - часть Правил Кодирования, позволяет много быстрее понимать код и находить проблемные части. За деталями - в ту дискуссию, где Я объяснял, что каждое из полей, на уровне бизнес-объекта, должно иметь свой тип, А с введением итераторов foreach отпадает необходимость определять переменную цикла.
#34 
Murr коренной житель29.10.07 23:06
Murr
NEW 29.10.07 23:06 
in Antwort AlexNek 29.10.07 18:59
CUser User = ...
------
Эээ...
TUser user = ... - все локальные переменные,
так как User зарезервировано для пропертей...
#35 
Simple Nothing is f*cked29.10.07 23:11
Simple
NEW 29.10.07 23:11 
in Antwort Murr 29.10.07 23:03
Поймал! гыгы
#36 
Murr коренной житель29.10.07 23:13
Murr
NEW 29.10.07 23:13 
in Antwort scorpi_ 29.10.07 19:38
Следуешь соглашению - классы с большой, переменные с маленькой, и всё ясно и понятно.
------
Ну а Property куда денешь? Будешь добавлять куда-то циферьку/буковку? Почему не в имя класса?
А во-вторых думать всегда полезно. Может там дополнительная инфа нужна? Например не User user = ...; a User forum_user = ...;
------
class TForum_user : TUser...
TForum_user forum_user = ...;
Сам же говоришь, что сущность, отличная от первой...
#37 
AlexNek старожил29.10.07 23:42
AlexNek
NEW 29.10.07 23:42 
in Antwort Murr 29.10.07 23:06
....зарезервировано для пропертей.
А ежели пропертей нету?
#38 
Murr коренной житель29.10.07 23:45
Murr
NEW 29.10.07 23:45 
in Antwort AlexNek 29.10.07 23:42
Тогда все остается как есть, а пропертей просто нету.
В смысле - не надо перестраиваться с заглавной на маленькую.
#39 
  Chipolino местный житель30.10.07 09:02
NEW 30.10.07 09:02 
in Antwort Murr 29.10.07 23:03
В ответ на:
Эта "привычка", а точнее - часть Правил Кодирования, позволяет много быстрее понимать код и находить проблемные части. За деталями - в ту дискуссию, где Я объяснял, что каждое из полей, на уровне бизнес-объекта, должно иметь свой тип, А с введением итераторов foreach отпадает необходимость определять переменную цикла.

"Твои" правила кодирования мне как-то пох...
И откровенно говоря , я устал уже читать твою самозабвенную чушь , по крайней мере что касается плюсов .
PS. "Я" пишется с маленькой буквы .
#40 
Murr коренной житель30.10.07 13:46
Murr
NEW 30.10.07 13:46 
in Antwort Chipolino 30.10.07 09:02
"Твои" правила кодирования мне как-то пох...
------
Мне твой пох - без интересу. Я, как и AlexNek, никому своего стандарта кодирования не навязываю, за исключением случаев, когда работаем в команде. И даже тогда, объясняя почему выбрана та или иная форма записи, оставляю возможность ее заменить - всего то требуется доступно объяснить в чем будет преимущество.
"Я" пишется с маленькой буквы .
------
Учи английский...
#41 
  Chipolino местный житель30.10.07 14:13
NEW 30.10.07 14:13 
in Antwort Murr 30.10.07 13:46
В ответ на:
Учи английский...

Так мы всё время по английски общаемся ?
#42 
Simple Nothing is f*cked30.10.07 15:42
Simple
NEW 30.10.07 15:42 
in Antwort Chipolino 30.10.07 14:13
Учи сцуконах албанский! :-D
#43 
Murr коренной житель30.10.07 16:09
Murr
NEW 30.10.07 16:09 
in Antwort Chipolino 30.10.07 14:13
Так мы всё время по английски общаемся ?
-----
Не знаю как вы, но у меня 90% общения - на английском...
#44 
Murr коренной житель30.10.07 16:11
Murr
NEW 30.10.07 16:11 
in Antwort Simple 30.10.07 15:42
Учи сцуконах албанский! :-D
------
Не нападай на Чиполино! Он хороший! Правда ему до Чиполотто еще расти и расти...
#45 
  Chipolino местный житель30.10.07 17:27
NEW 30.10.07 17:27 
in Antwort Simple 30.10.07 15:42
В ответ на:
Учи сцуконах албанский! :-D

Теперь придется :-)
#46 
  Chipolino местный житель30.10.07 17:30
NEW 30.10.07 17:30 
in Antwort Murr 30.10.07 16:11
Да ты еще и тайный фанат Родари :-)
#47 
AlexNek старожил30.10.07 19:48
AlexNek
NEW 30.10.07 19:48 
in Antwort Chipolino 30.10.07 09:02
Речь вроде шла просто о Правилах Кодирования, а не о конкретных рекомендациям. Важно только то чтобы они были и не сильно отличались от общепринятых норм. Хотя последнее замечание больше относится к программисту со стороны. Шеф все равно сделает так как ему нравится.
#48 
1 2 3 alle