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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ файл и строки http://www.cyberforum.ru/cpp-beginners/thread77271.html
такая задача по файлам дан файл.в нём некий набор чисел. нужно выяснить есть ли среди этого набора чисел хотя бы одна последовательность и если есть, то какая максимальная длина? у меня есть...
C++ Может ли белая фигура пойти на поле (e,f), не попав при этом под удар черной фигуры Дураку уж помогите(((( 1. Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число – номер вертикали (при счете слева направо), второе –... http://www.cyberforum.ru/cpp-beginners/thread77267.html
C++ Из матрицы вырезать те элементы, которые помечены белым
Задали лабу, 2/3 сделал, а вот с третьем заданием вышла заминка... Помогите! Дана матрица, из неё нужно вырезать те элементы, которые помечены белым. И оставить те, что попадают в чёрную область. ...
Двумерные массивы (матрицы) C++
Добрый день!!!!!! Помогите решить такую задачу: Характеристикой столбца целочисленной матрицы назовём сумму модулей его отрицательных нечётных элементов. Переставляя столбцы заданной матрицы,...
C++ Найти первые N чисел при которых младший бит является зеркальным отражением следуещего бита http://www.cyberforum.ru/cpp-beginners/thread77258.html
nado NAITI pervie N celix 4isel pri kotorix mladshii bit yavlyaetsya zerkalnim otrajeniyem predidushego!
C++ Строки символов Введите с клавиатуры строку символов, после чего замените все буквы "a" (латиница) на цифру 0 и выведите результирующую строку на экран. если можно лёгким языком без использования std. подробнее

Показать сообщение отдельно
vdimmy
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 4

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

20.12.2009, 20:50. Просмотров 824. Ответов 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 код? Прошу прощения за такую безграмотность. Подскажите пожалуйста, как верно написать проверку.
Буду очень благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru