[ 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. o'clock

    o'clock Elder - Старейшина

    Joined:
    16 May 2009
    Messages:
    125
    Likes Received:
    22
    Reputations:
    11
    А #include <clocale> сделал?
     
  2. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    Можно ли как-то из приложение на C++/C получить исходный код открытой страницы в браузере (например в опере). Сомневаюсь конечно что можно, но вдруг кто знает способ))

    UPD глянул через АртМани, исходный код найти в дампе можно, но хотелось бы этого избежать, так что актуально
     
    #7442 zifanchuck, 18 Sep 2012
    Last edited: 18 Sep 2012
  3. DeepBlue7

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

    Joined:
    2 Jan 2009
    Messages:
    359
    Likes Received:
    50
    Reputations:
    12
    Можно. Иногда используется для формграббинга. Как именно - сказать немогу.
     
  4. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Есть массив строк.
    Нужно их отсортировать по алфавиту через std::sort (вроде-как легче всего).
    Поможете?
     
  5. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Code:
    #include <iostream>
    #include <vector>
    #include <string>
    #include <algorithm>
    
    int main()
    {
    	std::vector<std::string> sv;
    	sv.push_back("Test");
    	sv.push_back("Fuck");
    	sv.push_back("Acid");
    	sv.push_back("Ziga");
    	sv.push_back("Menu");
    	sv.push_back("Eggs");
    
    	std::sort(sv.begin(), sv.end(), [](std::string &a, std::string &b){return a < b;});
    
    	for(auto s : sv)
    		std::cout << s << std::endl;
    }
    
     
  6. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Ругается на эти строки. BCB компилятор.
     
  7. innlife

    innlife New Member

    Joined:
    27 Mar 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
  8. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Потому что не умеет c++11.

    Code:
    #include <iostream>
    #include <vector>
    #include <string>
    #include <algorithm>
    
    int main()
    {
    	std::vector<std::string> sv;
    	sv.push_back("Test");
    	sv.push_back("Fuck");
    	sv.push_back("Acid");
    	sv.push_back("Ziga");
    	sv.push_back("Menu");
    	sv.push_back("Eggs");
    
    	std::sort(sv.begin(), sv.end());
    
    	for(std::vector<std::string>::const_iterator it = sv.begin(); it != sv.end(); ++it)
    		std::cout << (*it) << std::endl;
    }
    
     
    1 person likes this.
  9. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    1) Подскажите XML парсер для СИ
     
    #7449 b3, 9 Oct 2012
    Last edited: 9 Oct 2012
  10. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    первая ссылка в гугле
    http://stackoverflow.com/questions/399704/xml-parser-for-c
     
  11. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    ваше предпочтение какой?
     
  12. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    Code Blocks расположен в C:\Program Files\CodeBlocks, проект лежит в E:\projects\zamena.

    Код:
    Code:
    char* buf = new char[500];
        FILE* f;
        f = fopen("IN.TXT", "r");
        fread(buf, 500, sizeof(buf), f);
        fclose(f);
        std::string text;
        text = (const char*)buf;
        printf("%s \n", text.c_str());
    
    В ответ получаю:
    Code:
    {text from IN.TXT}
    les\Common Files\Acronis\SnapAPI\
    
    Директория из последней строки находится в C:\Program Files\Common Files\Acronis\SnapAPI\
    Только вот непонятно, откуда она там вообще взялась.
     
    #7452 0o Chris o0, 23 Oct 2012
    Last edited: 23 Oct 2012
  13. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Нельзя просто так взять и присвоить экземпляру класса указатель на сферический буфер в вакууме.
    А ещё непонятно нафига сишными методами читать файл и потом использовать cpp
     
    _________________________
  14. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    И все-таки появление этой строки явно не связано с
    Code:
    text=(const char*)buf;
    Всегда так приводил и все было хорошо :)

    Да, логичнее использовать cout, просто сначала было немного по другому.

    Кстати, на эту последнюю строку компилятор никак не реагирует.
    Например код:
    Code:
    cout << text << "\n" <<"текст, который должен вывестись через строку";
    Выведет:
    Code:
    {text from IN.TXT}
    les\Common Files\Acronis\SnapAPI\
    текст, который должен вывестись через строку
    
    А код:
    Code:
    cout << text << "\n\n" <<"текст, который должен вывестись через 2 строки";
    Выведет:
    Code:
    {text from IN.TXT}
    les\Common Files\Acronis\SnapAPI\
    
    текст, который должен вывестись через  2 строки
    
     
    #7454 0o Chris o0, 23 Oct 2012
    Last edited: 23 Oct 2012
  15. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Ну тогда memset(buf, 0, 500); перед тем как читать в него...
     
    _________________________
  16. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Есть ли в СИ аналог функции file() как в PHP, то есть чтение строк из файла в массив? Или как реализовать на СИ? Мой ход мысли был такой:
    1) Читаем файл, узнаем кол-во строк.
    2) создаем массив символов размером равным кол-ву строк.
    3) заново читаем файл построчно и записываем в массив строки.
    по моему бред))
     
  17. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Вычисли размер файла, который будешь читать. Создай массив такого размера и прочитай в него файл.
    Дальше если тебе нужно разбить все это построчно, можешь воспользоваться функцией strtok().
     
    #7457 Chrome~, 26 Oct 2012
    Last edited: 26 Oct 2012
  18. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Ну я так же и сделал. Вот мой быдлокод

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int count_strings_infile(char *filename);
    
    int main()
    {
    	
    	
    	
    	char user_arr[count_strings_infile("./users")][100];
    	char str[100];
    	int i=0;
    	
    	FILE *fp;
    	fp = fopen("./users", "r");
    	
    	while(!feof(fp)) {
    		fgets(str, 100, fp);
    		
    		strcpy(user_arr[i], str);
    		i++;
    		}
    		
    		printf("str: %s\n", user_arr[0]);
    	
    	
    	
    	printf("%i", count_strings_infile("./users"));
    	
    	return 0;
    	
    	}
    
    
    
    int
    count_strings_infile(char *filename)
    {
    	
    	FILE *fp;
    	int i=0;
    	char ch;
    	
    	if((fp = fopen(filename, "r")) == NULL) {
    		printf("error open file");
    	exit(1);
    	}
    	
    	while(!feof(fp)) {
    	
    	ch = fgetc(fp);
    	if(ch == '\n') {
    		i++;
    	}
    	}
    	
    	fclose(fp);
    	
    return i;
    }
    
    
     
  19. TweakeR

    TweakeR Member

    Joined:
    6 Feb 2006
    Messages:
    54
    Likes Received:
    8
    Reputations:
    5
    Здравствуйте, подскажите пожалуйста как переделать данный код из C# на С++ :
    Code:
    int i = 0;
    while(i < text.Length) {
        result += text[i + 1].ToString() + text[i].ToString(); 
        i += 2; 
    }
     
  20. MaxFast

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

    Joined:
    12 Oct 2011
    Messages:
    575
    Likes Received:
    149
    Reputations:
    94
    Как написать загрузчик (bootloader) в C или в C++?
    Ну или asm код который можно вставить в _asm.

    Прошу прощения за такой вопрос, просто интересно стало.
     
Thread Status:
Not open for further replies.