Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
olexeycadet
-3 / 0 / 1
Регистрация: 17.10.2015
Сообщений: 24
1

Считывание с файла

08.11.2015, 17:38. Просмотров 180. Ответов 3
Метки нет (Все метки)

Суть задачи такова дан файл test.txt нужно вывести на экран число таких групп букв, которые начинаются и кончаются одной и тойже буквой.Помогите в чьом ошибка?
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <fstream>
#include <windows.h>
 
//Это функция проверки на разделитель
bool is_separator(const char &ch){
  switch (ch)
  {
      case ' ':;   //Break не ставится правильно
      case ',':;
      case '\n':;
      return true;
  }   return false;
}
int main()
{
 
 
 
    int ch; //Для посимвольного чтения файла. Символы будут считываться в ch
    int count_=0; //Курсор для прочитанного слова. Номер символа в слове
    char S[255]={}; //Слово будет записываться в массив символов. Предполается размер слова не будет больше 255 символов
    char t=0; //Последний прочитанный символ слова
 
    ifstream MyFile("d:\\test.txt");
       if (MyFile.is_open()){
          while ((ch = MyFile.get()) != EOF){
               if (is_separator(ch)) {  //Если встретили разделитель, проверяем существование слова
                  if (count_){  //Если курсор не в стартовой точке, то слово есть
                  count_=0;     //Ставим курсор на начало для нового слова
 
                if (S[0]==t) cout<<S<<"\n"; //Если первый символ равен последнму символу слова, то выводим на экран S
                  for (int i=0;i<255;i++) S[i]=0;} //Очищаем от мусора массив S
               }
               else {           //Если встретили не разделитель, то
                 t=char(ch);    //Запоминаем сивол в t
                 S[count_]=char(ch);//Дописываем в конец S прочитй символ
                 count_++;  //Двигаем курсор по массиву
               }
          }
       } else cout<<"Файла не существует\n";
    MyFile.close();
 
   return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2015, 17:38
Ответы с готовыми решениями:

Заменить считывание с клавиатуры на считывание из файла
Помогите пожалуйста, ни разу не работал со считыванием из файла поэтому не...

Считывание файла в массив и запись нового файла
Консоль VS C++. Текстовый файл открывается как бинарный, и считывается по 100...

считывание из файла
Считывает нормально но как я понял надо перевести в int для расчетов, Как это...

Считывание из файла
Помогите пожалуйста,никак не могу найти,как считать данные из такого файла: ...

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

3
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
08.11.2015, 17:54 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool is_separator(const char &ch)
{
  switch (ch)
  {
      case ' ':
      case ',':
      case '\n':
          break;
      default:
          return false;
  }   
  return true;
}
0
olexeycadet
-3 / 0 / 1
Регистрация: 17.10.2015
Сообщений: 24
08.11.2015, 18:08  [ТС] 3
не работает
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
08.11.2015, 18:24 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
          while ((ch = MyFile.get()) != EOF)
          {
               if (is_separator(ch))
               {  //Если встретили разделитель, проверяем существование слова
                  if (count_ > 0)
                  {  //Если курсор не в стартовой точке, то слово есть
                      if (S[0] == S[count_ - 1])
                      {
                          S[count_] = '\0';
                          cout<<S<<"\n";
                      }
                      count_= 0;     //Ставим курсор на начало для нового слова
                   } //Очищаем от мусора массив S
               }
               else S[count_++] = ch;
          }
Добавлено через 45 секунд
Комментарии не учитывай, я их не исправлял.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2015, 18:24

Считывание с файла
Подскажите, плиз, как из файла в массив считать строку вместе с пробелами?

Считывание с файла
ВСЕМ ПРИВЕТ!Я пишу программу смысл ее такой: создан файл key.txt(в этом файле...

Считывание из файла
Ребят,подскажите пожалуйста: Нужно считать из файлов значения. Я создал два...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru