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

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

Войти
Регистрация
Восстановить пароль
 
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 172
#1

Удалить 1 строку из одинаковых строк - C++

20.06.2013, 18:28. Просмотров 227. Ответов 2
Метки нет (Все метки)

Если имеются 2 одинаковые строки, функция удаляет обе, а мне нужно, чтобы удаляло только 1 строку.

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
void ubovlyaem()//функция удаления
{
    setlocale(LC_ALL, "Russian");
    int j;char N[25];
    i=0;
    fstream stu("fail.txt",ios::in);//открытие файла для считывания данних
     if(!stu){cout<<"Искомого файла нет\n";exit(1);}
    student *st;// динамическая переменная
    st=new student[100];
    while(!stu.eof())//пока не будет конца файла
    {
        stu>>st[i];//считывание из файла
        i++;
    }
    stu.close();//закрытие файла
    fstream minys("fail.txt",ios::trunc| ios::out);//открытие файла для переписания данных
    if(!minys){cout<<"Искомого файла нет\n";exit(1);}
    cout<<"\nФамилия студента: ";
    cin>>N;
    for(j=0;j<i-1;j++)
    {  if(strcmp(st[j].ost_f(),N)!=0)//сравнение i-ой и фамилии N
{if((j+2)!=i){ minys<<st[j]<<"\n";}else {minys<<st[j]; } }//запись в файл
 }//уменьшаем на 1, понадобится в других функциях
    minys.close();//закрытие
    delete []st;//удаление
 
}
Думаю, дело в этой строке и нужно сделать через case, потому что еще один if не подойдет (if(N==N))

C++
1
2
for(j=0;j<i-1;j++)
    {  if(strcmp(st[j].ost_f(),N)!=0)//сравнение i-ой и фамилии N
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2013, 18:28     Удалить 1 строку из одинаковых строк
Посмотрите здесь:

Удалить из массива строк самую короткую строку - C++
Сформировать массив строк разной длины. Удалить из него самую короткую строку.

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

Записать в файл последовательность строк. Самую длинную строку удалить - C++
Записать в файл последовательность строк. Самую длинную строку удалить. Помогите новичку

Сформировать массив строк. Удалить из него самую короткую строку - C++
Помогите пожалуйста. Сформировать массив строк. Удалить из него самую короткую строку

Указатели. Сформировать массив строк. Удалить из него самую длинную строку - C++
Сформировать массив строк. Удалить из него самую длинную строку Добавлено через 16 часов 19 минут Что никто не знает как??

Сформировать динамический массив строк; удалить из него строку с заданным номером - C++
Сформировать динамический массив строк. Удалить из него строку с заданным номером. Добавлено через 1 час 15 минут UP!!!

Сформировать массив строк. Удалить из него строку начинающуюся и заканчивающуюся на одну и ту же букву - C++
Сформировать массив строк. Удалить из него строку начинающуюся и заканчивающуюся на одну и ту же букву

Посчитать количество строк и символов, удалить 2-ую строку и отдельно добавить в другой файл - C++
Уважаемые Форумчане, можете подсказать: 1) Есть текст какой то , например ывафывафывафыв аываывваа 23423 кцукцу ыава ...

Сформировать массив строк. Удалить из него строку начинающуюся и заканчивающуюся на одну и ту же букву. - C++
Сформировать массив строк. Удалить из него строку начинающуюся и заканчивающуюся на одну и ту же букву.

Найти в матрице строку где сумма элементов минимальна и удалить эту строку - C++
Написать программу, что бы она находила в матрице строку где сумма элементов минимальна и удаляла эту строку, я написал чтобы программа...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
6984 / 4155 / 592
Регистрация: 29.11.2010
Сообщений: 11,021
20.06.2013, 18:45     Удалить 1 строку из одинаковых строк #2
Цитата Сообщение от alex-net Посмотреть сообщение
void ubovlyaem()
это ужас

В логику вашей программы тяжело вникнуть т.к. отступы и пробелы расставлены плохо. Непонятно почему нельзя использовать std::string. Чтобы не удаляло два элемента можно ввести флаг(bool переменную) и при удалении первого ставить флаг как "удалять более не требуется".
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 172
20.06.2013, 18:46  [ТС]     Удалить 1 строку из одинаковых строк #3
MrGluck, это малая часть программы, сама программа на 300 строк, это функция удаления строки.
Yandex
Объявления
20.06.2013, 18:46     Удалить 1 строку из одинаковых строк
Ответ Создать тему
Опции темы

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