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

C++ Липман

330  1 2 3 alle
  dmitryd гость26.10.07 00:27
NEW 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
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 
1 2 3 alle