Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
bandarfei
0 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 10
#1

Прокомментировать код - C (СИ)

04.06.2012, 15:33. Просмотров 357. Ответов 4
Метки нет (Все метки)

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
#include<stdio.h>
#include<conio.h>
#include<string.h>
 
int main()
{
FILE *f;
char sk[1000];
char sl[100];
 
printf("Wse zaprosi:\n");
f=fopen("access_log","r");
  do
  {
     fgets(sk, 1000, f);
     char *p=strstr(sk, "\"GET");
     char *p2=strstr(sk, "HTTP");
     if ((p != NULL)&&(p2 != NULL)&&((p2-p)>7))
     {
        strncpy(sl, p+5, p2-p-6);sl[p2-p-6]='\0';
        printf("%s\n",sl);
     }
  }
  while(!feof(f));
fclose(f);
getch();
   return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2012, 15:33
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Прокомментировать код (C (СИ)):

Прокомментировать код
Дайте подробный комментарий: #define size 5 //число элементов в массиве,...

Прокомментировать код
#include &lt;iostream&gt; // библиотека ввода, вывода (cin, cout) #include &lt;string&gt;...

Прокомментировать код
может кто то составить коментарии? #include &lt;stdio.h&gt; #include &lt;string.h&gt;...

Прокомментировать код
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; #define LENGTH...

Прокомментировать код
Подскажите что делают эти программы... или может кто коментарии составить?...

Прокомментировать код
Что делает программа (забыл), а с++ не работает #include &lt;conio.h&gt;...

4
HighPredator
5647 / 1964 / 716
Регистрация: 10.12.2010
Сообщений: 5,691
Записей в блоге: 3
04.06.2012, 15:54 #2
Смысл можно было бы объяснить, если б эта штука работала.
0
Ilyawow
26 / 26 / 7
Регистрация: 18.11.2011
Сообщений: 266
04.06.2012, 16:31 #3
Цитата Сообщение от HighPredator Посмотреть сообщение
Смысл можно было бы объяснить, если б эта штука работала.
может быть эо потому что у тебя нет файла из которого читать ? и Автор используй тэги
0
HighPredator
5647 / 1964 / 716
Регистрация: 10.12.2010
Сообщений: 5,691
Записей в блоге: 3
04.06.2012, 16:48 #4
Ilyawow, дело даже не в том, что нет файла, а в том, что как сишный код этот не скомпилируется.
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
04.06.2012, 18:41 #5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

bandarfei, по задумке находит все GET запросы в логфайле веб сервера, но написано так, что не любому индусу в страшном сне приснится. И таки HighPredator прав - как С код это не скомпилируется.
Скомпилируется и отработает вот так:
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define STR_SIZE 1024
#define LOG_FILE "access.log"
#define OPEN_TEG "\"GET "
#define OPEN_TEG_LENGHT 5
#define CLOSE_TEG " HTTP/"
#define LINES_PER_SCREEN 20
 
int main(void){
    FILE * fin;
    char buf[STR_SIZE], * pOpen, * pClose;
    unsigned lineNo;
    
    if ( ! ( fin = fopen(LOG_FILE, "r") ) ) {
        fprintf(stderr, "Can't open %s for input!\n", LOG_FILE);
        return 1;
    }
    
    lineNo = 0;
    printf("All GET queries:\n");
    while ( fgets(buf, STR_SIZE, fin) ){
        if ( ( pOpen = strstr(buf, OPEN_TEG) ) && ( pClose = strstr(pOpen, CLOSE_TEG) ) ) {
            *pClose = '\0';
            printf("%s\n", pOpen + OPEN_TEG_LENGHT);
            if ( ++lineNo % LINES_PER_SCREEN == 0 )
                system("pause");
        }
    }
    if ( ferror(fin) || fclose(fin) ) {
        fprintf(stderr, "Somethink is wrong with %s...\n", LOG_FILE);
        return 1;
    }
    
    system("pause");
    return 0;
}
На пару параноидальных предупреждений можно забить - всё там правильно.
0
04.06.2012, 18:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2012, 18:41
Привет! Вот еще темы с решениями:

Прокомментировать код
Что вычисляется в следующем фрагменте (записать формулу) if(x&gt;b&amp;&amp;x&lt;1)...

Прокомментировать код
Привет всем , не могли бы напомнить мне язык Си а то подзабыл, строчки кода...

Прокомментировать код
как ето роботает? #include &lt;stdio.h&gt; main() { long nc; nc=0;...

Прокомментировать код
Всем привет. Обращаюсь к Вам за помощью. Имеется 2 готовые программки, но их...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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