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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vdimmy
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 4
#1

Удаление повторений пустых строк - C++

20.12.2009, 20:50. Просмотров 819. Ответов 0
Метки нет (Все метки)

Здравствуйте! Условие задания такое: "Разработать программу исключения из текстового файла повторений пустых строк, где нет других символов кроме пробелов и табуляций. Имя исходного текстового файла должно передаваться программе через аргумент командной строки её вызова. Результат исключений повторов пустых строк должен отображаться через поток стандартного вывода. Общее количество исключенных пустых строк должно отображаться через stderr."

Код:
C++
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
46
47
48
49
50
#include <iostream>
#include <fstream>
#include <ctype.h>
 
using namespace std;
 
int main(int argc, char** argv)
{
   int num=0;
   int i;
   int flag;
   char line[100];
   ifstream file(argv[1], ios::in);
   
   if(!file)
   {
      cout<<"file doesn't exist"<<endl;
      return 0;
   }
 
   else
   {
 
       while(!file.eof())
       {
            for(i=0; i<100; i++)
            line[i]=' ';
         
            file.getline(line, sizeof(line));
 
           for(i=0,flag=0; flag!=1 || i<100; i++)
            {
               if(!isspace(line[i]))
               flag=1;
            }
 
           if(flag==1)
               cout<<line<<endl;
            else
                num++;
 
       }
     
      cerr<<"number of deleted strings: "<<num<<endl;
   }
   
   
   
   getchar();
}
Сейчас я хочу просто выводить непустые строки, а потом сделаю вывод без повторений.
Идея такая:
Считывание из файла построчное. В 26-й и 27 строках строка заполняется нулями для избежания мусора. Далее в 33-й строке идет проверка на "непустоту" символа. Если таковой присутствует, то flag=1 и строка выводится. Эта версия просто выводит все строки, ничего не пропуская, и мне кажется, что ошибка в 33-й строке. Значит флаг всегда равен единице, следовательно isspace не правильно применяется. Ведь у него же аргумент должен быть типа int, а массив строки типа char. Может через ACKII код? Прошу прощения за такую безграмотность. Подскажите пожалуйста, как верно написать проверку.
Буду очень благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2009, 20:50     Удаление повторений пустых строк
Посмотрите здесь:

Удаление пустых строк из массива - C++
TCHAR display; //создаем массив SendMessage(Handle, WM_GETTEXT, 32768, (LPARAM)display); //заносим в массив содержимое окна ...

Сравнение строк в векторе и удаление их повторений - C++
Ошибка компиляции в строках с erase(). Прога считывает n строк, сравнивает их все. Если строки одинаковые — он выводит ее и удаляет все...

Удаление пустых папок - C++
Здравствуйте! Нигде не нашел как рекурсивно удалить все пустые папки в по указанному пути. Т.е. проходить по всем папкам и под-папкам...

Реализовать удаление повторений из списка - C++
Удаление из списка повторений. нужен код.

Сформировать текстовый файл, подсчитать количество пустых строк в нем - C++
Сформировать текстовый файл. Подсчитать количество пустых строк в нем. Использовать функции,а также меню для выбора существующего или вновь...

Удаление из списка повторений и определение всех листьев дерева - C++
Всем привет, я никак не могу разобраться с теми деревьями и списками. Кому не трудно помогите написать эту задачу (Удаление из списка...

Описать функцию, которая подсчитывает количество пустых строк в текстовом файле - C++
Описать функцию, которая подсчитывает количество пустых строк в тек- стовом файле

Построить строку в которую войдут только общие символы двух строк в алфавитном порядке и без повторений - C++
Даны две символьные строки, содержащие только строчные латинские буквы. Построить строку S3, в которую войдут только общие символы S1 и S2...

Удаление из строк - C++
Удаление из строк всех букв со сжатием строк ( остаются цифры и символы) PS Дано: 2 строки по 80 символов.

Удаление из строк - C++
В символьной строке удалить все слова состоящие из нечётного количества букв.

Удаление строк из списка - C++
Задан список строк. Исключить из списка одинаковы строки. Не знаю как удалять строку из списка. // alg3.cpp : Defines the entry...

Удаление строк из файла - C++
Имеется файл формата аа бб вв гг дд Как удалить введенную с клавиатуры строку? Только чтоб не оставалось пробелов


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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