[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. csrss

    csrss Member

    Joined:
    13 Apr 2009
    Messages:
    38
    Likes Received:
    38
    Reputations:
    4
    Code:
    #include <stdio.h>
    #define FILE_NAME "a.txt"
    
    struct params{
    char aaa[100];
    char bbb[100];
    char ccc[100];
    };
    
    int main(){
      struct params data[100];
      char line[200];
      int v = 0;
    
    FILE *fp = fopen(FILE_NAME, "r");
    while ( fgets ( line, sizeof line, fp ) != NULL ){
    sscanf(line, "%s %d %d", &data[v].aaa, &data[v].bbb, &data[v].ccc);
    printf("%s", line);
    v++;
    }
    printf("\n");
    }
    Можно так. Там уж поправь как тебе надо.
     
  2. unfii

    unfii New Member

    Joined:
    19 Apr 2009
    Messages:
    12
    Likes Received:
    1
    Reputations:
    0
    Function should return a value :(
    Code:
    #include <stdio.h>
    #define FILE_NAME "file.txt"
    struct oxota
    {
    char prizvishe[256];
    int vpol;
    int vaga;};
    
    int main ()
    {
    struct oxota data[200];
    char line[200];
    int v=0;
    FILE*fp=fopen(FILE_NAME, "r");
    while (fgets(line, sizeof line, fp)!=NULL)
    {
    sscanf(line, "%s %i %i", &data[v].prizvishe, &data[v].vpol, &data[v].vaga);
    printf("%s", line);
    v++;
    }
    printf("\n");
    }
     
  3. csrss

    csrss Member

    Joined:
    13 Apr 2009
    Messages:
    38
    Likes Received:
    38
    Reputations:
    4
    2 unfii

    добавь в конце main:

    return 0;

    в Visual studio вижу компилиш...
     
  4. Fata1ex

    Fata1ex Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    unfii, исправь "int main()" на "void main()" или допиши перед последней фигурной скобкой "return 0;"
     
  5. unfii

    unfii New Member

    Joined:
    19 Apr 2009
    Messages:
    12
    Likes Received:
    1
    Reputations:
    0
    [​IMG]
    не хочет приложение терь стартовать :(
     
  6. unfii

    unfii New Member

    Joined:
    19 Apr 2009
    Messages:
    12
    Likes Received:
    1
    Reputations:
    0
    и прийдеться ставить во всех класах информатики?:)
     
  7. Fata1ex

    Fata1ex Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    >Dev C++ - самый корректный компилятор

    Dev-c++ это среда разработки, использующая компилятор mingw

    PS
    "sizeof line" -------> "sizeof(line)"
     
    #3007 Fata1ex, 30 May 2009
    Last edited: 30 May 2009
  8. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    ты переполнил массив, объявленный локально. у тебя всего 3 их.
    char prizvishe[256];
    struct oxota data[200];
    char line[200];

    вот и отлаживай ищи, куда ты сунул больше, чем выделил памяти.
     
  9. unfii

    unfii New Member

    Joined:
    19 Apr 2009
    Messages:
    12
    Likes Received:
    1
    Reputations:
    0
    о вроде стартонуло, только ничего не показывает, пусто :(
     
  10. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    создай отдельный топик чтоли, а то ща получим тут чатик...
     
  11. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    что нужно куда заинклудить, чтобы в чистом С++ получить текущее время, дату?
     
  12. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Code:
    #include   <stdio.h>
    #include   <dos.h>
    
    int main(void)
    {
       struct  time t;
    
       gettime(&t);
       printf("The current time is: %2d:%02d:%02d.%02d\n",
              t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);
       return 0;
    }
    
     
    _________________________
    1 person likes this.
  13. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    спасибо
    а если я пишу на С++ - я тоже должен использовать dos.h? это современный и актуальный метод?
     
  14. Fata1ex

    Fata1ex Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    >а если я пишу на С++ - я тоже должен использовать dos.h?
    Да
     
  15. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    1 person likes this.
  16. Spy2ex

    Spy2ex Elder - Старейшина

    Joined:
    20 Sep 2008
    Messages:
    32
    Likes Received:
    15
    Reputations:
    1
    У меня проблема хочу авторизоваться на сайте вконтакте средствами С++.
    Отловив я все запросы что посылает мой браузер, и посылая их же в коде, в ответе получаю "400 bad reqest".
    Вот код.
    Code:
    
    #include <stdio.h>
    #include <string.h>
    #include <winsock2.h>
    #include <windows.h>
    #include <ctype.h>
    
    #define PORT 80
    #define SERVERADDR "93.186.225.212"     // Адрес сервера
    
    #pragma comment(lib, "Ws2_32.lib")   //либа
    
    int main ( int argc, char* argv [ ] )
    {
    		WSADATA wd;
    		char buff[100000];
    		char buff2[100000]=
    		{
    		"POST /login.php HTTP/1.1"
    "Host: vkontakte.ru"
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9) Gecko/2008051206 Firefox/3.0 (.NET CLR 3.5.30729)"
    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
    "Accept-Language: ru,en-us;q=0.7,en;q=0.3"
    "Accept-Encoding: gzip,deflate"
    "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7"
    "Keep-Alive: 300"
    "Connection: keep-alive"
    "Content-Type: application/x-www-form-urlencoded; charset=UTF-8"
    "X-Requested-With: XMLHttpRequest"
    "Referer: http://vkontakte.ru/index.php"
    "Content-Length: 71"
    "Cookie: remixchk=5; remixautobookmark=2; remixlang=0"
    "Pragma: no-cache"
    "Cache-Control: no-cache"
    "op=a_login_attempt&email=e-mail&pass=pass&expire=0"
    
    
    
    
    		};
            printf ( "TCP Client \n" ); // ну, тут и так понятно
    
            if ( WSAStartup ( 0x202, &wd ) )
            {
                    printf ( " WSAStart error  %d \n ", WSAGetLastError ( ) );
                    return -1;
            }
    
            SOCKET sock ;
            sock=socket ( AF_INET, SOCK_STREAM, 0 );
            if  ( sock < 0 )
            {
    			printf (" Socket ( ) error    %d \n ", WSAGetLastError ( ) );
    			return  -1;
            }
    
            sockaddr_in  dest_addr;
            dest_addr.sin_family=AF_INET; //инет коннектинг
            dest_addr.sin_port=htons ( PORT ); //порт
            HOSTENT    *hst;  // хост
    
            if( inet_addr(SERVERADDR) != INADDR_NONE )
    			dest_addr.sin_addr.S_un.S_addr = inet_addr(SERVERADDR);
            else if( hst=gethostbyname ( SERVERADDR ) )
    			( ( unsigned long   * ) &dest_addr.sin_addr )[0]=((unsigned long** )hst->h_addr_list)[0][0];
            else
            {
                   printf( "invalid address  %s \n", SERVERADDR );
                   closesocket( sock ) ;
                   WSACleanup();
                   return  -1;
            }
    
            if(connect( sock, (sockaddr *)&dest_addr, sizeof(dest_addr) ))
            {
                   printf (" Connect error  %d \n ", WSAGetLastError ( ) );
                   return -1;
            }
    
    		send( sock, buff2, sizeof(buff2), 0);
    		recv( sock, buff, sizeof(buff)-1, 0 );
    				printf("%s",buff );
    			printf("\n");
            printf ("Connection with %s succesfully. quit - quit" , SERVERADDR );
    
             return 0;
    }
    
    
     
  17. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Видимо дело в отсутствии переносов строк в запросе
     
    _________________________
  18. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    ну зависит от деталей реадизации. если нада быстрый поиск, то все строки предварительно считываются, и составляется массив ключей вида struct Record {string name; unsigned long offset; unsigned int length;};
    в массиве есесно отсортировано по смещению строки. дальше в массиве находишь нужное имя, берешь смещение и длину. вычисляешь размер части файла, которая лежит за этим куском кодом типа tail_length = file_size - (record.offset + record.length);
    ну и переписываешь этот хвостик по смещению, на котором находилась старая запись. в конце устанавливаешь размер файла как file_size - record.length;
    усе. если массив таких структур нельзя заводить, то соотв всю инфу нужно каждый раз получать из файла. т.е. считывать строки, искать нужный ключ, итп. лень кодить, ибо стока раз уже эту фигню делал студентам, что тошнит от нее
     
  19. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    экранировать не нада. прально грят про перерды строк. а мне пора пожалуй спаьт =\
     
    #3019 Ra$cal, 1 Jun 2009
    Last edited: 1 Jun 2009
  20. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    Естественно. В конце каждого поля запроса у тебя не хватает \r\n
     
Thread Status:
Not open for further replies.