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

Задача:Удалить строчки - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,154
Завершенные тесты: 1
21.09.2009, 21:00     Задача:Удалить строчки #1
в КиР наткнулся на задачу:
напишите программу удаления из "С"-пораммы всех комментариев. Не забывайте аккуратно обращаться с "закавыченнными" строками константами
как понял - надо редактировать срр файл...но как я знаю удалить строчки из файла невозможно!как это можно реализовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2009, 21:00     Задача:Удалить строчки
Посмотрите здесь:

Задачка в 2 строчки (указатели) C++
C++ Задача на графы. Удалить ребра так, чтобы степень любой вершины была равна 3 или 0
Задача звучит так: Пользователь вводит строку символов, удалить из этой строки каждый 3-й по счёту элемент C++
переписать 2 строчки на c++ C++
Задача 1)фамилии студентов, которые имеют две и больше двоек в сессию на заданном пользователем факультете и удалить их C++
Удалить слово из строчки, либо массива символов C++
C++ Задача на графы. Удалить ребро, соединяющее вершины a и b
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
21.09.2009, 21:08     Задача:Удалить строчки #2
МедведЪ, нет ничего невозможного Например, можно читать файл в буфер, обрабатывать, а потом записывать в файл... Под тем же именем вот и будет - удаление строчек из файла)
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,154
Завершенные тесты: 1
21.09.2009, 21:09  [ТС]     Задача:Удалить строчки #3
GAV_13, возможно,но в книге этого не проходил,вряд ли они такие сложные вещи без объяснения задали..
M128K145
Эксперт C++
 Аватар для M128K145
8276 / 3495 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
21.09.2009, 21:21     Задача:Удалить строчки #4
Цитата Сообщение от МедведЪ Посмотреть сообщение
сложные вещи без объяснения задали
а в чем сложность? считать содержимое файла в строку или перезаписать файл этой строкой?
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
21.09.2009, 21:37     Задача:Удалить строчки #5
Всего 3 действия.
1. Чтение из файла
2. Работа со строками
3. Запись в файл

А вот это все наверняка в книге есть) с объяснениями и примерами)
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
21.09.2009, 21:41     Задача:Удалить строчки #6
Цитата Сообщение от МедведЪ Посмотреть сообщение
как понял - надо редактировать срр файл
Нет, там все проще. Имеется ввиду, что юзер сам вводит текст. Файловые операции будут в 7й главе.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,154
Завершенные тесты: 1
21.09.2009, 21:48  [ТС]     Задача:Удалить строчки #7
Цитата Сообщение от M128K145 Посмотреть сообщение
а в чем сложность? считать содержимое файла в строку или перезаписать файл этой строкой?
я когда тут в форуме тему открыл,как удалить строки изфайла хостс..сказали удалить нельзя...

Добавлено через 2 минуты
Цитата Сообщение от Gravity Посмотреть сообщение
Нет, там все проще. Имеется ввиду, что юзер сам вводит текст. Файловые операции будут в 7й главе.
если в 7-ой то почему это упражнение щас дали?
какой текст?Код?через getchar?

Добавлено через 15 секунд
Цитата Сообщение от Gravity Посмотреть сообщение
Нет, там все проще. Имеется ввиду, что юзер сам вводит текст. Файловые операции будут в 7й главе.
если в 7-ой то почему это упражнение щас дали?
какой текст?Код?через getchar?
Delphin_KKC
UNIX-way
 Аватар для Delphin_KKC
710 / 494 / 17
Регистрация: 15.01.2009
Сообщений: 1,721
21.09.2009, 21:50     Задача:Удалить строчки #8
Цитата Сообщение от МедведЪ Посмотреть сообщение
я когда тут в форуме тему открыл,как удалить строки изфайла хостс..сказали удалить нельзя...
C:\WINDOWS\system32\drivers\etс\hosts ?
Тогда очень даже можно, а иногда и нужно.
Кроме строк, начинающихся с символа "#", там должна быть только строка
Код
127.0.0.1       localhost
Если там есть ещё что-то - убивать без сожаления.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,154
Завершенные тесты: 1
21.09.2009, 21:54  [ТС]     Задача:Удалить строчки #9
Delphin_KKC, аххахах...ты не пон меня...я этот файл на 100 знаю...хотел чтобы моя прога добавила строку,поом сама ее удалил,сказали что через консоль невозможно
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
21.09.2009, 21:55     Задача:Удалить строчки #10
Цитата Сообщение от МедведЪ Посмотреть сообщение
какой текст?Код?через getchar?
Обычный текст, который набирают в консоли. Если ты дочитал до этого упражнения, то уже должен уметь это делать.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,154
Завершенные тесты: 1
21.09.2009, 22:02  [ТС]     Задача:Удалить строчки #11
Gravity, я умею,я просто не понял что надо делатьа это знаю.ну тогда можно так сделать
C++
1
if((c=getchar())='//'){c==" ";}
ну то есть если есть \\ то заменить пробелом
еси что не так,исправьте пожалуйста
Delphin_KKC
UNIX-way
 Аватар для Delphin_KKC
710 / 494 / 17
Регистрация: 15.01.2009
Сообщений: 1,721
21.09.2009, 22:06     Задача:Удалить строчки #12
Цитата Сообщение от МедведЪ Посмотреть сообщение
Delphin_KKC, аххахах...ты не пон меня...я этот файл на 100 знаю...хотел чтобы моя прога добавила строку,поом сама ее удалил,сказали что через консоль невозможно
Нет ничего невозможного
Через саму консоль (без доп. программ) мож и нельзя. Я не очень разбираюсь в написании CMD и BAT файлов. А вот программно - можно. Для этого надо:
Добавление строки
1)открыть файл на добавление
2)дописать что нужно
3)закрыть файл.
Удаление строки
вариант 1
1)считать содержимое файла в память
2)обработать его как нужно
3)удалить исходный файл с диска
4)записать результат обработки.
вариант 2
1)открыть файл на чтение в текстовом режиме и временный файл на запись.
2)если в файле есть строки - считать строку, иначе - идти на пункт 7.
3)проверить является ли она удаляемой
4)если да - идти на пункт 2 иначе - далее
5)записать считанную строку во временный файл
6)идти на пункт 2
7)закрыть оба файла.
8)удалить оригинал, а временный файл поместить на место оригинала.
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
21.09.2009, 22:07     Задача:Удалить строчки #13
МедведЪ, ну ты напиши весь код, а там уже посмотрим
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
21.09.2009, 22:11     Задача:Удалить строчки #14
Цитата Сообщение от МедведЪ Посмотреть сообщение
ну то есть если есть \\ то заменить пробелом
еси что не так,исправьте пожалуйста
Нет такого символа '//' Есть 2 символа '/'. Эт во-первых.
Во-вторых:
C++
1
2
//Comment
int x; //Еще коммент
заменив пробелами получишь:
C++
1
2
  Comment
int x;   Еще коммент
Что закономерно будет ошибкой. т.е. получить ты должен:
C++
1
int x;
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,154
Завершенные тесты: 1
21.09.2009, 22:21  [ТС]     Задача:Удалить строчки #15
GAV_13, тогда можно
C++
1
2
3
4
while(C!=\n){
c==" ";
 
}
вроде так
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
21.09.2009, 22:31     Задача:Удалить строчки #16
Не понял кода

Если читаешь с клавиатуры, проще всего, будет сначала считать то, что вводит пользователь в массив char, обработать его, удалив комменты по правилу:
1. начиная с пары символов "//" и до конца строки
или
2. текст между парами "/*" и "*/" включая пары

А потом выдать этот массив.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,154
Завершенные тесты: 1
21.09.2009, 22:34  [ТС]     Задача:Удалить строчки #17
GAV_13, не не,так:
C++
1
while(c=\n && c=\\){...}
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
21.09.2009, 22:54     Задача:Удалить строчки #18
во-первых
C++
1
c==" "
это сравнение с со строкой " "
присвоение:
C++
1
a=b;
символ конца строки записывается так:
C++
1
c=='\n'    // сравнение с с символом конца строки
скорее что-то типа такого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int i, j;
// ...
i=0;
j=0;
while(c[i]!='\n')
{
  if(c[i]=='/' && c[i+1]=='/')
  {
      result[j]='\n';
      break;
  }
  if(c[i]=='/' && c[i+1]=='*')
  {
    i+=2;
    while(c[i]!='*' && c[i+1]!='/') i++;
    i++;
  }
  result[j]=c[i];
  i++;
  j++;
}
 
// ...
Это, естессно для одной строки) но смысл - такой, для всех введенных строчек
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,154
Завершенные тесты: 1
22.09.2009, 19:58  [ТС]     Задача:Удалить строчки #19
GAV_13, то есть как понял на "" а ''?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2009, 21:16     Задача:Удалить строчки
Еще ссылки по теме:

C++ Удаление подстрочки из строчки
C++ Прокомментировать 2 строчки кода
Расшифруйте 3 строчки кода C++
Разбить строчку на строчки C++
Ввести строки s1 и s2. 2 средних символа строчки s2 удалить и вставить в начало и конец s1 C++

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

Или воспользуйтесь поиском по форуму:
NAG
8 / 8 / 1
Регистрация: 15.03.2009
Сообщений: 267
22.09.2009, 21:16     Задача:Удалить строчки #20
Береш стринг и указатель. Указатель приравниваешь стрингу. Считиваешь его. И потом
C
1
while (*p) // пусть "[B]p[/B]"  это указатель на стринг (си программу)
ищешь коментарии, начало коментария - /* и конец - */
Yandex
Объявления
22.09.2009, 21:16     Задача:Удалить строчки
Ответ Создать тему
Опции темы

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