Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 876
от 14.10.2007, 06:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 485, Экспертов: 71
В номере:Вопросов: 3, Ответов: 9


Вопрос № 104689: Уважаемые эксперты! Возникла проблема уже во второй програмке (подщет символов) , приведенныэ ранеее решения по вопросу № 73.844 не помогли :( курсор в консоли просто переходит на другую строчку и ничего не протсходит использую Borland c+...
Вопрос № 104707: Имеется небольшая программка для перевода дюймов в сантиметры. MS Visual Studio 2005 находит в ней такие ошибки: c:subjectsc++122.cpp(9) : error C3861: 'clrscr': identifier not found c:subjectsc++122.cpp(10) : error C2065: 'cout' : unde...
Вопрос № 104738: Уважаемые эксперты, помогите составить список ответов на следующие вопросы. 1. Структура программы на языке С/С++. Функции и операторы. 2. Потоки ввода/вывода С++. Пример использования. 3. Файловые потоки С++ и работа с ними. Посимво...

Вопрос № 104.689
Уважаемые эксперты!
Возникла проблема уже во второй програмке (подщет символов) , приведенныэ ранеее решения по вопросу № 73.844 не помогли :(
курсор в консоли просто переходит на другую строчку и ничего не протсходит
использую Borland c++ v3.1
Пример взят из книги "Язык программирования C
Б. Керниган, Д. Ритчи " исходник прилагаю

Приложение:

Отправлен: 08.10.2007, 14:34
Вопрос задал: Сергей Богданович (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Maxim V.G.
Здравствуйте, Сергей Богданович!
Cимвол ЕOF состоит из 2 байт (в windows Ctrl+D), а при чтении со стандартного потока макрос getchar() считывает 1 символ размером в 1 байт. В Макрос getchar() вернёт значение ЕOF при завершении стандартного потока ввода либо при возникновении ошибки (это будет либо по завершению приложения либо никогда). Насколько я понял из обяснения, то Вы хотите чтобы подсчёт символов производился при переходе на новую строку (после нажатия клавиши Enter). Для этого Вам нужно отслеживать появление символа возврат каретки ' '. И тогда цикл будет выглядеть примерно так: while (getchar() != ' ') ++nc;. В приложении исправленный код!
P.$.
Прошу меня извинить, если не в полной мере ответил на поставленный вопрос. Просто в тексте вопроса сам вопрос отсутствует!

Приложение:

---------
Жить вредно - от неё умирают

Ответ отправил: Maxim V.G. (статус: 5-ый класс)
Ответ отправлен: 08.10.2007, 17:04
Оценка за ответ: 5

Отвечает: Виктор Пырлик
Надо либо определить EOF (define) - в примере это STOP, либо, проверять непосредственно в коде введенный символ getchar() != ' '. (см. пример)

Приложение:

---------
Если ничего не помогло - надо читать инструкцию

Ответ отправил: Виктор Пырлик (статус: Практикант)
Ответ отправлен: 08.10.2007, 17:21
Оценка за ответ: 5
Комментарий оценки:
большое спасибо !!!
теперь остается вопрос почему пример в книге не правильный ))

Отвечает: kool
Здравствуйте, Сергей Богданович!
Здравствуйте, Сергей Богданович!
Дык она ждет пока вы нажмете какую-нибудь клавишу.
Удачи!


---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 08.10.2007, 19:03

Отвечает: Гальцов Андрей Михаилович
Здравствуйте, Сергей Богданович!

Насколько я понял, вам нужно нажать какую нибудь клавишу...уж извините если не правильно понял...

---------
Да здравтствует С++!!!...;)
Ответ отправил: Гальцов Андрей Михаилович (статус: 3-ий класс)
Ответ отправлен: 08.10.2007, 19:56


Вопрос № 104.707
Имеется небольшая программка для перевода дюймов в сантиметры. MS Visual Studio 2005 находит в ней такие ошибки:
c:subjectsc++122.cpp(9) : error C3861: 'clrscr': identifier not found
c:subjectsc++122.cpp(10) : error C2065: 'cout' : undeclared identifier
c:subjectsc++122.cpp(11) : error C2065: 'cin' : undeclared identifier
c:subjectsc++122.cpp(13) : error C3861: 'getch': identifier not found

Что исправить?

Приложение:

Отправлен: 08.10.2007, 16:15
Вопрос задал: Blackie (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Хватов Сергей
Здравствуйте, Blackie!

Вы используете устаревший интерфейс для iostreams
Надо включать iostream (без суффикса)

Вообще-то порядочные SDK в этом случае ругаются, но делают что требуется, но похоже MS Visual Studio к таким не относится :-).

Кроме того вы используете вперемешку несколько механизмов I/O (iostream & stdio) которые работать вместе вовсе не обязаны.

Приложение:

Ответ отправил: Хватов Сергей (статус: Студент)
Ответ отправлен: 08.10.2007, 17:37

Отвечает: Виктор Пырлик
Здравствуйте, Blackie!

функция очистки экрана clrscr() определена в conio.h, но это в реализации Borland, в реализации MS VS данная функция не определена (по крайней мере, я не смог её нигде найти).
Поэтому, есть простой способ очистки экрана, использовать DOS функцию cls. (см. приложение)

Так же, откройте файл stdafx.h и в конец запишите файл conio.h
должно быть так:

#pragma once
#define WIN32_LEAN_AND_MEAN
#include "stdio.h"
#include "tchar.h"
#include "conio.h" // <- надо добавить

только кавычки заменить угловыми скобками <>.

Приложение:

---------
Если ничего не помогло - надо читать инструкцию

Ответ отправил: Виктор Пырлик (статус: Практикант)
Ответ отправлен: 08.10.2007, 17:40

Отвечает: Aristos
Здравствуйте, Blackie!

Функция clrscr() - очишает консоль. В бибиотеке conio поставляемой со студией такой функции нет. В общем то, вполне можно обойтись без неё. При запуске консольного приложениявсе равно создается новая пустая консоль (если конечно запускать в студии или по иконке/ярлыку, а не в консоле).

2005 студия в соответствии со стандартом, содержит заголовчный файла <iostream>, и использует неймспейс std для библиотеки stl. Поэтому надо обращаться к потокам как std::cout/std::cin, либо объявлять использование неймспейса - using namespace std;

В соответствии со стандартом функция getch() имеет имя _getch()/

Так же необходимо заголовочный файл "stdafx.h" включать перед остальными заголовками (если вы используете предкомпиляцию заголовков, которая по умолчанию включена в студии).

К сожаленью, как примеры к учебным пособиям, так и компиляторы, не соответствуют в полной мере стандарту, и приходтся вносить в код подобные измениния.

В приложении ваш код с указанными исправлениями.

Приложение:

---------
нет ничего невозможного

Ответ отправил: Aristos (статус: 7-ой класс)
Ответ отправлен: 08.10.2007, 18:50

Отвечает: Гальцов Андрей Михаилович
Здравствуйте, Blackie!

Тут ошибка с дерикториями!...зайдите в optionsdirectories и поставте там пути к папке lib и h (Ваш путь к папке, где находится MS)...
---------
Да здравтствует С++!!!...;)
Ответ отправил: Гальцов Андрей Михаилович (статус: 3-ий класс)
Ответ отправлен: 08.10.2007, 20:07


Вопрос № 104.738
Уважаемые эксперты, помогите составить список ответов на следующие вопросы.

1. Структура программы на языке С/С++. Функции и операторы.
2. Потоки ввода/вывода С++. Пример использования.
3. Файловые потоки С++ и работа с ними. Посимвольный и построчный ввод/вывод.
4. Базовые (встроенные) типы данных С/С++. Объявление переменных и констант.
5. Объявление и использование массивов в С/С++. Одномерные и многомерные массивы.
6. Строки как массив символов. Основные функции для работы со строками.
7. Условные операторы и операторы цикла. Циклы и массивы.
8. Указатели. Массивы указателей. Примеры использования указателей.
9. Функции. Определение пользовательских функций. Передача параметров.
10. Рекурсия и ее использование при разработке функций. Рекурсивные алгоритмы.
11. Работа с командной строкой. Аргументы функции main.
12. Структуры. Описание и использование структур. Доступ к элементам структур.
13. Динамическая память. Создание динамических переменных, массивов. Использование динамической памяти.
14. Динамические связанные списки. Основные операции над элементами списков.
Отправлен: 08.10.2007, 20:08
Вопрос задал: Серов Дмитрий В (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Гальцов Андрей Михаилович
Здравствуйте, Серов Дмитрий В!

Думаю, что здесь Вы сможете найти всё Вас интересующее...
http://ru.wikipedia.org/wiki/C%2B%2B

---------
Да здравтствует С++!!!...;)
Ответ отправил: Гальцов Андрей Михаилович (статус: 3-ий класс)
Ответ отправлен: 08.10.2007, 20:30


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.60.2 от 13.10.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное