Форум программистов, компьютерный форум CyberForum.ru

Подсчет символов в файле. Не пашет - C++

Восстановить пароль Регистрация
 
freeken
 Аватар для freeken
0 / 0 / 0
Регистрация: 09.02.2013
Сообщений: 91
09.02.2013, 12:32     Подсчет символов в файле. Не пашет #1
Добрый день!
Пытаюсь в никнуть в основу основ С++ при помощи С++ Builder v.6
Есть пример:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma hdrstop
#include <stdio.h> //for getchar(), putchar()
#include <conio.h> //for getchar()
#define eof 27 // признак конца файла
 
 
int main()
{
 long nc;
 nc=0;
 printf("make input>\n");
 while(getchar()!= eof)
        nc++;
 printf("Character's number is: %ld\n",nc);
 getch(); /* Вводит символ, но без эхо-сопровождения (для организации задержки экрана
*/
}
Но при этом при вызове eof (ESC) почему-то ничего не происходит.
Где я прокололся?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2013, 12:32     Подсчет символов в файле. Не пашет
Посмотрите здесь:

подсчет слов в файле. C++
подсчет количества символов в файле C++
Подсчет символов пробелов и строк в файле C++
Подсчет символов в файле C++
C++ Подсчет символов в файле
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
09.02.2013, 12:56     Подсчет символов в файле. Не пашет #2
Цитата Сообщение от freeken Посмотреть сообщение
Добрый день!
Пытаюсь в никнуть в основу основ С++ при помощи С++ Builder v.6
Есть пример:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma hdrstop
#include <stdio.h> //for getchar(), putchar()
#include <conio.h> //for getchar()
#define eof 27 // признак конца файла
 
 
int main()
{
 long nc;
 nc=0;
 printf("make input>\n");
 while(getchar()!= eof)
        nc++;
 printf("Character's number is: %ld\n",nc);
 getch(); /* Вводит символ, но без эхо-сопровождения (для организации задержки экрана
*/
}
Но при этом при вызове eof (ESC) почему-то ничего не происходит.
Где я прокололся?
Странно... у меня почему то getchar() не ловит 27й символ.... а getch() ловит. И так работает.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h> //for getchar(), putchar()
#include <conio.h> //for getchar()
#define eof 27 // признак конца файла
 
 
int main()
{
 long nc;
 nc=0;
 printf("make input>\n");
 while(getch()!= 27 && ++nc);
 printf("Character's number is: %ld\n",nc);
 getch(); /* Вводит символ, но без эхо-сопровождения (для организации задержки экрана
*/
}
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
09.02.2013, 13:04     Подсчет символов в файле. Не пашет #3
Пёс,
C++
1
++nc;
Так будет ловить.
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
09.02.2013, 13:04     Подсчет символов в файле. Не пашет #4
я так понял речь идёт о файлах?
и зачем вы всё в C-like скатываетесь, на С++ будет как-то так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
 
using namespace std;
int main()
{
    ifstream infile;
    infile.open ("testfile.txt");
    char c;
    long i = 0;
    
    while (infile)
    {
        ++i;
        infile>>c;
    }
    cout << i << endl;
    infile.close();
    return 0;
}
freeken
 Аватар для freeken
0 / 0 / 0
Регистрация: 09.02.2013
Сообщений: 91
09.02.2013, 13:09  [ТС]     Подсчет символов в файле. Не пашет #5
Цитата Сообщение от Пёс Посмотреть сообщение
Странно... у меня почему то getchar() не ловит 27й символ.... а getch() ловит. И так работает.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h> //for getchar(), putchar()
#include <conio.h> //for getchar()
#define eof 27 // признак конца файла
 
 
int main()
{
 long nc;
 nc=0;
 printf("make input>\n");
 while(getch()!= 27 && ++nc);
 printf("Character's number is: %ld\n",nc);
 getch(); /* Вводит символ, но без эхо-сопровождения (для организации задержки экрана
*/
}
Но при getch нет отображения вводимых символов

C++ (Qt)
1
2
 while(getch()!= eof)
        nc++;
Добавлено через 4 минуты
Цитата Сообщение от abit Посмотреть сообщение
я так понял речь идёт о файлах?
abit,
Речь идет в принципе о приведенном в книге листинге. Не пойму в чем дело... может в книге? ))) Или во мне) Одна из двух наиболее вероятных версий)
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
09.02.2013, 13:26     Подсчет символов в файле. Не пашет #6
Речь идет в принципе о приведенном в книге листинге. Не пойму в чем дело... может в книге? ))) Или во мне) Одна из двух наиболее вероятных версий)
тут простите, не помогу, getch() это из conio.h, который в Linux отсутствует, это древний MS-DOS хеадер... и не входит ни в какой из С или С++ стандартов, поэтому я даже не знаю что там и как...

я лишь призвал начинать осоваивать нормальный С++, а не С++ времён Borland C++ 3.1 90-х годов
freeken
 Аватар для freeken
0 / 0 / 0
Регистрация: 09.02.2013
Сообщений: 91
09.02.2013, 13:31  [ТС]     Подсчет символов в файле. Не пашет #7
abit, Боюсь, но может я ошибся начиная изучение с:

1. Книг: Герберт Ш. "C++ шаг за шагом" + Борис Пахомов "Borland C++ Builder v.6";
2. Пакет "Borland C++Builder 6"

и мне начать с чего-то другого и не морочить людям голову?
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
09.02.2013, 13:39     Подсчет символов в файле. Не пашет #8
Цитата Сообщение от freeken Посмотреть сообщение
abit, Боюсь, но может я ошибся начиная изучение с:

1. Книг: Герберт Ш. "C++ шаг за шагом" + Борис Пахомов "Borland C++ Builder v.6";
2. Пакет "Borland C++Builder 6"

и мне начать с чего-то другого и не морочить людям голову?
если у вас есть опыт в программирование на каком-нибудь языке высокого уровня хотя бы отдалённый (pascal/php/...) могу посоветовать например http://www.ozon.ru/context/detail/id/1273565/ сам по ней учусь, к книге есть на сайте в свободном доступе все примеры, работающие во всех современных компиляторах (G++, VS 2010/2012, Intel C++, C++ Builder XE)

хорошо в ней то, что она сразу берёт STL за рога ) и боязни перед ним у вас не будет

хотя бы просто гляньте на то, какие там примеры кода ) и сравните со своими
freeken
 Аватар для freeken
0 / 0 / 0
Регистрация: 09.02.2013
Сообщений: 91
09.02.2013, 14:06  [ТС]     Подсчет символов в файле. Не пашет #9
abit, Видимо не до конца проработал варианты современного использования знаний. Будем работать над этим. Спасибо большое!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2013, 19:19     Подсчет символов в файле. Не пашет
Еще ссылки по теме:

Сделать подсчет частоты встречаемости последовательности символов АБВ в текстовом файле C++
Подсчет кол-ва символов в строке во входном файле C++
C++ Подсчет количества символов русского алфавита в текстовом файле

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

Или воспользуйтесь поиском по форуму:
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
09.02.2013, 19:19     Подсчет символов в файле. Не пашет #10
Цитата Сообщение от UnsKneD Посмотреть сообщение
Пёс,
C++
1
++nc;
Так будет ловить.
К сожалению, я не понимаю что вы хотели этим сказать
Yandex
Объявления
09.02.2013, 19:19     Подсчет символов в файле. Не пашет
Ответ Создать тему
Опции темы

Текущее время: 22:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru