ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #2971  
Старый 14.05.2009, 01:48
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

Mosvit - эпично накалякал =))))))) попробуй погуглить на тему сортировка пузырьком.
зы: и учись разделять блоки кода на функции. именно для этого они и придуманы. а комменты вида
//---------------------------------Вывод массива
очень хорошо говорят нам о том, что этот блок кода должен быть функцией.
 

  #2972  
Старый 15.05.2009, 19:43
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

PHP код:
typedef char pChar;


int main()
{
    
// 1 enter string
    
pChar buffer = new char(50);
    
strcpy(buffer"123456");

    
// 2 set end pointer
    
pChar endPointer buffer;

    while(*
endPointer++);

    *
endPointer--;
    *
endPointer--;

    
// 3 get length
    
unsigned int len strlen(buffer);

    
// 4 cout string
    
while(len--)
        
cout << *endPointer--;

    return 
1;

вкратце.
программа выделяет память под строку, вносит туда строку, создаёт ещё один указатель, перематывает его в конец строки, определяет длину строки и в цикле выводит строку в обратном порядке.

но если убрать эти два декремента:
PHP код:
    *endPointer--;
    *
endPointer--; 
программа выводит два квадратика, а потом 6543..

что тут не так?
функции реверса строк не предлагать, я хочу научиться писать их сам
 

  #2973  
Старый 15.05.2009, 20:04
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

А так нельзя разве?
Код:
    char *buffer = new char(50);
    strcpy(buffer, "123456");
    int len = strlen(buffer);
    while(len--)cout<<buffer[len];
 

  #2974  
Старый 15.05.2009, 20:09
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

потому что даже после сравнения с нулем будет инкремент указателя. точнее в момент сравнения с нулем. как бы это объяснить по человечески... минусы использования декрементов и инкрементов в местах не очень для них подходящих... не юзай кароч таких конструкций, и будет все нормально.

Код:
#include <iostream>
using namespace std;
typedef char * pChar;


int main()
{
	// 1 enter string
	pChar buffer = new char(50);
	strcpy(buffer, "123456");

	// 2 set end pointer
	pChar endPointer = buffer + strlen(buffer) - 1;

	// 4 cout string
	while(endPointer >= buffer)
		cout << *endPointer--;

	return 1;
}
 

  #2975  
Старый 15.05.2009, 21:31
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

Цитата:
pChar endPointer = buffer + strlen(buffer) - 1;
то что нужно! спасибо обоим
 

  #2976  
Старый 17.05.2009, 16:50
s_p_a_m
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме:
1608432

Репутация: 158
По умолчанию

дайте лит-ру по ГУИ интерфейсу. или подскажите как реализовать:

1)считывание цифр из тексбокса
2) выполнение операций над ними (нарпимер сложение)
3)вывод результата

P.S.
Нужно реализовать вот это
Код:
#include <stdio.h>                      
#include <stdlib.h>                    
 
int main(void)                         
{
  int i;                              
  char buffer[500];                    
 
  printf("Enter a number: ");           
  scanf("%o", &i);     
 
  itoa(i,buffer,10);                    
  printf("decimal: %s\n", buffer);     
 
  itoa(i,buffer,16);
  printf("hexadecimal: %s\n", buffer);  
 
  itoa(i, buffer, 2);                  
  printf("binary: %s\n", buffer);
  return 0;                            
}
на гуи

Последний раз редактировалось s_p_a_m; 17.05.2009 в 16:53..
 

  #2977  
Старый 17.05.2009, 17:03
FoV
Новичок
Регистрация: 27.09.2008
Сообщений: 15
Провел на форуме:
103874

Репутация: 20
По умолчанию

Цитата:
дайте лит-ру по ГУИ интерфейсу.
В c++ нет встроенного гуя,тебе нужно взять какую-нибудь сторонню библеотеку: mfc,winforms,qt..
Цитата:
P.S.
Нужно реализовать вот это
Если под винду подойдет winforms.Создавай в студии проект Windows Form Applications,кинь на форму кнопку и текст бокс.В обработчике нажатия на кнопку пиши что нужно сделать.Текст из текст бокса находится в this->textBox1->Text.
p.s. еще вариант на винапи написать.
 

  #2978  
Старый 17.05.2009, 17:08
s_p_a_m
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме:
1608432

Репутация: 158
По умолчанию

Цитата:
Сообщение от FoV  
В c++ нет встроенного гуя,тебе нужно взять какую-нибудь сторонню библеотеку: mfc,winforms,qt..

Если под винду подойдет winforms.Создавай в студии проект Windows Form Applications,кинь на форму кнопку и текст бокс.В обработчике нажатия на кнопку пиши что нужно сделать.Текст из текст бокса находится в this->textBox1->Text.
p.s. еще вариант на винапи написать.
в проге выводятся три значения, я кинул на форму тексбокс, кнопку и 3 лейбла
вопрос номер рас: куда вписывать код, создавать есче один файл СРР ?
2) как прасвоить выводимые данные к лейблам?
3) как считать данные из текстбокса ?
 

  #2979  
Старый 17.05.2009, 17:24
FoV
Новичок
Регистрация: 27.09.2008
Сообщений: 15
Провел на форуме:
103874

Репутация: 20
По умолчанию

Цитата:
2) как прасвоить выводимые данные к лейблам?
this->label1->Text = "blabla"; Если нужно не текст присвоить юзай метод toString() - this->label1->Text = n.ToString();
Цитата:
3) как считать данные из текстбокса ?
System::String s = this->textBox1->Text;
 

  #2980  
Старый 17.05.2009, 17:34
s_p_a_m
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме:
1608432

Репутация: 158
По умолчанию

Цитата:
Сообщение от FoV  
System::String s = this->textBox1->Text;
error C3149: System::String: нельзя использовать здесь этот тип без "^" верхнего уровня

 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ