Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как в CMD сделать EOF 
:(
    Опции темы
Java2
Дата 7.1.2007, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 26.4.2006

Репутация: нет
Всего: нет



У меня есть программа, которая считывает символы из cmd, а встретив конец потока, 
выводить кол-во символов. Вся сложность в том, что я не могу понять, как сделать конец потока в cmd.

#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{
  
  int c;
  int signsCount;
  while(1) {
    signsCount = 0;
    while((c = getchar()) != EOF) {
             if(c == '\n' || c == '\t') {
                  ++signsCount;
             }
    }
    printf("Count: %d", signsCount);
  }
  
  system("PAUSE");      
  return 0;
}

PM MAIL   Вверх
KpoHyc
Дата 7.1.2007, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 23.12.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 5



 
Код

#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"


int main( int argc, char *argv[] )
{
int i;
char fname_in[50];

if( argc >0 )
    for( i=0; i <argc; i++ )
    {
        if( i==1 ) strcpy( fname_in, argv[i] );
        }
else
{
    printf( "empty cmd line\n" );
    exit(1);
    }
return 0;
}

Apook выкладывал в соседнем топике...
--------------------
AScript + Pascal + C -> C++ ->C#Adobe Photoshop 7.0/CS 2.0 + GIMP+ Visual Studio .NET(sp1)/2005 pro(sp1)
PM MAIL ICQ Skype GTalk Jabber   Вверх
Java2
Дата 8.1.2007, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 26.4.2006

Репутация: нет
Всего: нет



Друг, я не об этом. Этот пример я взял из книги "Язык программирования Си" (он немножко доработан мной). Там популярные авторы говорят, что моя эта программка считывает символы из консоли, но вот она ещё должна  при EOF завершить свою работу и вывести результат. Вопрос: как дать понять этой программке, которая считывает поток из CMD, что у нас EOF. Или EOF (End of File) - это только для файлов.

PM MAIL   Вверх
KelTron
Дата 8.1.2007, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: нет
Всего: 38



В текстовых файлах EOF == -1


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
apook
Дата 8.1.2007, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 9
Всего: 23



Цитата

он немножко доработан мной

Ты не правильно доработал
Консоль это не CMD Это значит что сеанс ДОС выполняет программа CMD.exe
Консоль (то что ты называешь CMD) это stdout-стандартный вывод
клавиатура stdin-стандартный ввод.

Откуда тебе надо считать? Наверно с клавиатуры
Тогда для начала используй printf scanf, а прекратить поток ввода
можно клавишей ENTER.... 

Если надо переделать именно твой вариант то скажи переделаю smile 
 smile  smile  smile 
Код

#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{

int c;
int signsCount=0;

while( (c=getchar()) != EOF )
{   
    // ..
    ++signsCount;
    }
printf("%d\n", signsCount );

//символ EOF получается, если нажать клавишу Ctrl и не отпуская ее, 
//нажать Z

  
system("PAUSE");      
return 0;
}

и ENTER///

Это сообщение отредактировал(а) apook - 8.1.2007, 12:49


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
ip127001
Дата 10.1.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 24.11.2006
Где: Omsk

Репутация: -2
Всего: -1



напиши норм вопрос...если тебе надо считвать инфу..то и так сделать

while(cin>>value)
{
    
//ну потом считаешь скок символов...цикл останавливается когда появляется /n
}
--------------------
aqua currit et debere currere ut currere solebat
PM MAIL   Вверх
vinter
Дата 10.1.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



а тут случаем не ctrl+z ли нужен тебе?? 


--------------------
Мой блог
PM MAIL WWW   Вверх
ip127001
Дата 10.1.2007, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 24.11.2006
Где: Omsk

Репутация: -2
Всего: -1



Цитата(vinter @  10.1.2007,  15:54 Найти цитируемый пост)
а тут случаем не ctrl+z ли нужен тебе??  


ctrl+z останавливает чтение из буфера ввода, но что нам мешает насильно из цикла выйти break'ом
помоему сработает

--------------------
aqua currit et debere currere ut currere solebat
PM MAIL   Вверх
vinter
Дата 11.1.2007, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



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


--------------------
Мой блог
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.