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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 58, средняя оценка - 4.90
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,245
Завершенные тесты: 1
#1

что то вроде программки,которая проверяет Hosts и лечит - C++

29.10.2009, 19:14. Просмотров 7190. Ответов 99
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void main (){
 
int c=0;
FILE *f=fopen("C:\WINDOWS\system32\drivers\etc\hosts", "a");
 
while((c=getc(f))!=EOF){
 
    if(c!="127.0.0.1 localhost"){
        cout<<"File hosts is infected";
f = fopen("C:\WINDOWS\system32\drivers\etc\hosts", "w");
fputs("127.0.0.1 localhost", f);
    }
}
 
fclose(f);
 
}
это мой код,вот на этом месте
if(c!="127.0.0.1 localhost")
я на этом месте не знаю как поступить
надо написать код,ктороый если находит другие строки кроме заводских строк-должен удалять их...как сделать?

Добавлено через 4 минуты
вопрос некорректно задал
в файле есть некий текст,определить,если кроме этого текста есть и другие слова,то удалить весь текст и добавить
127.0.0.1 loaclhost
это мой алгоритмн
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2009, 19:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос что то вроде программки,которая проверяет Hosts и лечит (C++):

Напишите функцию, которая проверяет, отсортирован ли массив - C++
Напишите функцию, которая проверяет, отсортирован ли массив вещественных чисел по невозрастанию. Она возвращает true, если отсортирован, и...

Написать программу, которая проверяет удачливость билета - C++
Близняшки Вера,Надежда и любовь пользуются общественным транспортом,чтобы добраться до школы.Когда они расплачиваются за проезд,они...

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

Написать программу, которая проверяет, является ли год високосным - C++
Написать программу, которая проверяет, является ли год високосным. Помогите пожалуйста

Написать функцию которая проверяет на уникальность каждый номер - C++
Решите пожалуйста Добавлено через 4 минуты Написать функцию которая проверяет табельный номер студента

Нужна программа которая проверяет, является ли число простым - C++
Нужна программа которая проверяет, является ли число простым. Вводится одно число n. Формат выходных данных: Необходимо вывести ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
29.10.2009, 19:20 #2
Цитата Сообщение от МедведЪ Посмотреть сообщение
[CPP
Добавлено через 4 минуты
вопрос некорректно задал
в файле есть некий текст,определить,если кроме этого текста есть и другие слова,то удалить весь текст и добавить
127.0.0.1 loaclhost
это мой алгоритмн
ты знаешь какой текст есть в файле? если да, то сравнивай посимвольно с исходным и корректируй как хочешь, если встретишь не соответсвие. но что-то мне подсказывает, что первичное наполнение файла не известно.
0
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,245
Завершенные тесты: 1
29.10.2009, 19:26  [ТС] #3
этот файл-hosts а что там находится все прогеры знают

Цитата Сообщение от TanT Посмотреть сообщение
сравнивай посимвольно с исходным
как?
0
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
29.10.2009, 19:32 #4
C
1
int c=0;
У тебя переменная int, заведи переменную char* или что-то в этом духе.И читай построчно.Найди где-нибудь creference и погляди,какие нужные функции для этого есть.
А вообще начинание хорошее.Типа против заразы
0
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
29.10.2009, 19:35 #5
Цитата Сообщение от МедведЪ Посмотреть сообщение
этот файл-hosts а что там находится все прогеры знают

как?
я ж не прогер, я не знаю, честно.
а как? #pragma, ответил
0
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,245
Завершенные тесты: 1
29.10.2009, 20:03  [ТС] #6
Цитата Сообщение от #pragma Посмотреть сообщение
creference
Что это такое?
Цитата Сообщение от #pragma Посмотреть сообщение
И читай построчно
нувот как?
C++
1
while(c!=EOF)
???

Добавлено через 1 минуту
Цитата Сообщение от #pragma Посмотреть сообщение
А вообще начинание хорошее.Типа против заразы
АГА
0
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
29.10.2009, 21:57 #7
"С reference" - обзор библиотеки Сhttp://www.google.ru/search?hl=ru&so...%B2+Google&lr=
Функция чтения построчно http://www.cplusplus.com/reference/c.../cstdio/fgets/
1
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,245
Завершенные тесты: 1
29.10.2009, 22:01  [ТС] #8
#pragma, там все на англ...я понимаю,ты хочешь что бы я прочел про него,но щас мне код нужен....благодарен тебе за это
0
HIMen
4136 / 1385 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
29.10.2009, 22:03 #9
а че его читать-то? пиши туда сразу 127.0.0.1 loaclhost и все
0
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,245
Завершенные тесты: 1
29.10.2009, 22:07  [ТС] #10
HIMen, в hosts-e не только 127.0.0.1,но и комментарии,если написать только ИП то программа будет счиать что эти комментарии-зараза....там целый текст
0
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
29.10.2009, 23:03 #11
Комментарии можешь тереть.Толку то от них,ты же английский не понимаешь,так три их в самом начале,и так и оставь файл,чтобы была одна строка.Если добавилось что-то,значит тревога.
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
29.10.2009, 23:20 #12
МедведЪ, поставь '\\', вместо '\'
1
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
30.10.2009, 04:00 #13
Вот попробуй.Сделай резервную копию файла где нибудь,и путь укажи в программе там где написано.Только помни,что нужны двойные слеши в пути.
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
#include <stdio.h>
#include <stdlib.h>
 
#define MAX_STRING_SIZE 255
 
int main()
{
   FILE *file;
   FILE *etalon;
 
   char *str_in_file = (char *)malloc(MAX_STRING_SIZE);
   char *str_in_etalon = (char *)malloc(MAX_STRING_SIZE);
 
   if ((file = fopen("C:\\WINDOWS\\system32\\drivers\\etc\\hosts", "a+")) == NULL)
   {
      printf("File \"hosts\" doesn't exist!");
      exit(EXIT_FAILURE);
   }
   if ((etalon = fopen("Тут твой путь к файлу-эталону", "r")) ==  NULL)
   {
      printf("Etalon file doesn't exist!");
      exit(EXIT_FAILURE);
   }
 
   while(fgets(str_in_file,MAX_STRING_SIZE,file) != NULL) {
 
     str_in_etalon = fgets(str_in_etalon,MAX_STRING_SIZE,etalon);
 
     if (strcmp(str_in_file,str_in_etalon))
     {
        printf("File hosts is changed,found this string: %s,removing...",str_in_file);
        fputs(str_in_etalon, file);
     }
     else printf("This string looks ok.\n");
   }
 
   free(str_in_file);
   free(str_in_etalon);
 
   fclose(etalon);
   fclose(file);
 
   return 0;
}
Может,и корявенько,но думаю сойдёт Если интересно,разберись сам с хеш-функциями,и просто сравнивай "чек-суммы",думаю это оптимальный вариант.

Добавлено через 10 минут
Ой,я тут маненько ошибся,там если найдена чужеродная строка,нужно начать читать файлы заново,и перезаписать их построчно,а лучше просто заменить файл на эталон,а то нормальная строка может записаться в самый конец файла,а не на своё место.Но ты уже сам доделай,ок ? =)
1
Search..
30.10.2009, 04:22
  #14

Не по теме:


Помню, как только зарегистрировался на этом форуме, заметил очень выделяющегося пользователя - #pragma. Выделялся он тем, что у него было рвение изучить с/с++ настолько огромно, что это не передать словами. Короче говоря, в отличие от многих людей, которые хотели что-то изучить и говорили "ой это же сложно и т.д." - #pragma учил и не на что не жаловался. Вот, прошло около полу года, как #pragma дает действительно полезные советы (в данном случае) пользователю МедведЪ. Очень впечатляют такие люди, т.к. их единицы. Извиняюсь за офтоп.

1
inter
9702 / 2457 / 47
Регистрация: 06.03.2009
Сообщений: 8,503
30.10.2009, 04:24 #15
Search.., в данном случае соглашусь, прагме +
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2009, 04:24
Привет! Вот еще темы с ответами:

Написать программу которая по заданному n проверяет число на палиндром - C++
Привет! Поступил учиться на дистанционное высшее образование, получил по предмету основы программирования домашнюю работу! Вот описание: ...

Написать функцию которая проверяет кратность двух чисел - C++
Написать функцию, которая принимает два целых числа N и M, и возвращает результат истина, если N кратно M, результат ложь, если N не...

написать программу которая проверяет , находится ли конкретный символ в строке ? - C++
Если честно -не совсем понимаю, как это делать Если можно - пример программы

Написать функцию, которая проверяет, является ли переданное ей число простым? - C++
Написать функцию, которая проверяет, является ли переданное ей число простым? Число называется простым, если оно делится без остатка только...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.10.2009, 04:24
Ответ Создать тему
Опции темы

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