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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Crait
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 32
#1

Записать TextBox в string - C++

24.10.2012, 20:36. Просмотров 2028. Ответов 5
Метки нет (Все метки)

Создаю виндовс форм, задача - взять текст из текст бока в переменную класса string. String^ не катит. Вот кусок кода:
C++
1
2
3
4
5
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
             {
                 string text;
                 text = textBox1->Text;
             }
Идут ошибки:
error C2065: string: необъявленный идентификатор ( библиотеку стринг подключил )
error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "text"
error C2065: text: необъявленный идентификатор
В чем проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2012, 20:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Записать TextBox в string (C++):

Проверка содержимого string/TextBox - C++
Доброго времени суток! Имеется строка TextBox, которую я перевожу в string, дабы затем поместить в переменную типа int, однако в случае...

Как записать string в файл? - C++
Добрый день, есть код программы, необходимо записать строку в текстовый файл. У меня получаются кракозябры. void table(string n1,string...

Как объединить 2 char и записать в string - C++
Как объединить 2 char и записать в string в файле находится строчка вида 012345 Все переменные принимаются правильно, как я понимаю...

Как записать из файла в строку string? - C++
Как записать из файла в строку string? std::ifstream vocabulari; vocabulari.open("vocabulari.txt"); if(vocabulari.fail()) return...

Записать строку с пробелами в string, с помощью потока. - C++
Здравствуйте. Можно ли с помощью потока ввода записать строку с пробелами в тип string. Если да, то как.

Записать в string или char бинарные данные - C++
Бъюсь второй день, не могу записать бинарные данные в переменную. Или может переменные не верные... У меня получается что если бинарная...

5
panicwassano
594 / 562 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
24.10.2012, 20:42 #2
Цитата Сообщение от Crait Посмотреть сообщение
В чем проблема?
в том что это не с++, это с++/CLI совершенно другой язык! Если вам нужны формы используйте C#

Добавлено через 43 секунды
Цитата Сообщение от Crait Посмотреть сообщение
String^ не катит
он как раз таки катит
0
Crait
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 32
24.10.2012, 22:09  [ТС] #3
Нет, это кусок кода. У меня есть уже работающий консольный код, состоящий в том числе и из функций, который нужно перенести на виндовс форм. Именно поэтому String ^ и не катит. Функции с ним не хотят работать, блин. Нельзя-ли как-нибудь сделать так, чтобы string подошел? НУ или перенести со String^ в string?

Добавлено через 1 час 23 минуты
http://msdn.microsoft.com/en-us/library/ms235219(v=vs.80).aspx
Нельзя ли сделать что-нибудь обратное?
0
MrCold
859 / 757 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
24.10.2012, 22:23 #4
Цитата Сообщение от Crait Посмотреть сообщение
сделать так, чтобы string подошел? НУ или перенести со String^ в string?
Можно - возни много .Код , что ль, покажите свой .. Может кто решится .

Добавлено через 5 минут
Цитата Сообщение от Crait Посмотреть сообщение
Нельзя ли сделать что-нибудь обратное?
Так вот же оно
http://msdn.microsoft.com/en-US/library/1b4az623(v=vs.80).aspx
1
Crait
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 32
24.10.2012, 23:14  [ТС] #5
Цитата Сообщение от MrCold Посмотреть сообщение
Можно - возни много .Код , что ль, покажите свой .. Может кто решится .

Добавлено через 5 минут

Так вот же оно
http://msdn.microsoft.com/en-US/library/1b4az623(v=vs.80).aspx
Спасибо! Я не нашел, маленький опыт сказывается.
Код почти весь на функциях строится. Вот, например:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
void MD5_hash(string sIn, int &A,int &B,int &C, int &D)
{
 
int length=sIn.size(); //получаем длину входного сообщения.
int rests=length%64; //остаток от деления на 64байта.
int size = 0; //тут будет храниться размер сообщения после первых 2ух шагов.
 
//Шаг 1.
if(rests < 56) //если остаток от деления на 64 меньше 56
 size=length-rests+56+8; //подгоняем размер так, что бы он был кратен 64(+8 байт для 2ого шага).
else //иначе (если остаток больше 56)
 size=length+64-rests+56+8; //подгоняем размер так, что бы он был кратен 64(+8 байт для 2ого шага).
 
char *cIn=new char[size]; //создаем динамический массив для хранения сообщения, которое далее будет кодироваться
 
for(int i=0;i<length;i++) //первые length элементов сIn
 cIn[i]=sIn[i]; //заполняем символами входного сообщения
 
cIn[length]=0x80; //савим в конец сообщения единичный бит.
 
for(int i=length+1;i<size;i++) //а все остальное
 cIn[i]=0; //заполняем нулями
 
//Шаг 2.
__int64 bitLength=(uint)(length)*8; //длина сообщения в битах.
 
for(int i=0;i<8;i++) //последние 8 байт
 cIn[size-8+i]=(bitLength >> i*8); //заполняем 64-битным представлением длины данных до выравнивания
 
//Шаг 3.
A=0x67452301, //Инициализируем начальные значения регистров.
B=0xefcdab89,
C=0x98badcfe,
D=0x10325476;
uint T[64]; //64-элементная таблица данных (констатнт).
 
for(int i=0;i<63;i++) //всю таблицу констант
 T[i]= pow(2.0,32.0)*fabs(sin(i*1.0)); //заполняем в соответствии с алгоритмом.
 
uint *X=new uint[size/4]; //создаем массив Х, в котором будет 32-разрядное представление сообщения.
 
X=(uint*)(cIn); //загоняем в массив Х сообщение cIn(в данном случае оно само разбиваеться на 32-разрядные слова).
 
//или это можно сделать "вручную" следующим образом:
//for(int i = 0; i <size/4; i++ )
 //X[ i] =(uint)(cIn[ i*4 + 3]<<24) +(uint)(cIn [i*4 + 2]<<16) + (uint)(cIn[i*4 + 1]<<8) + (uint)(cIn [i*4 + 0]);
 
//Шаг 4.
uint AA, BB, CC, DD;
 
for(int i=0;i<size/4;i+=16)
 {
 AA = A;BB = B; CC = C; DD = D;
 
 //раунд 1
 A = B + RotateLeft((A + F(B,C,D) + X[i+ 0] + T[ 1]),  7);
 D = A + RotateLeft((D + F(A,B,C) + X[i+ 1] + T[ 2]), 12);
 C = D + RotateLeft((C + F(D,A,B) + X[i+ 2] + T[ 3]), 17);
 B = C + RotateLeft((B + F(C,D,A) + X[i+ 3] + T[ 4]), 22);
 
 A = B + RotateLeft((A + F(B,C,D) + X[i+ 4] + T[ 5]),  7);
 D = A + RotateLeft((D + F(A,B,C) + X[i+ 5] + T[ 6]), 12);
 C = D + RotateLeft((C + F(D,A,B) + X[i+ 6] + T[ 7]), 17);
 B = C + RotateLeft((B + F(C,D,A) + X[i+ 7] + T[ 8]), 22);
 
 A = B + RotateLeft((A + F(B,C,D) + X[i+ 8] + T[ 9]),  7);
 D = A + RotateLeft((D + F(A,B,C) + X[i+ 9] + T[10]), 12);
 C = D + RotateLeft((C + F(D,A,B) + X[i+10] + T[11]), 17);
 B = C + RotateLeft((B + F(C,D,A) + X[i+11] + T[12]), 22);
 
 A = B + RotateLeft((A + F(B,C,D) + X[i+12] + T[13]),  7);
 D = A + RotateLeft((D + F(A,B,C) + X[i+13] + T[14]), 12);
 C = D + RotateLeft((C + F(D,A,B) + X[i+14] + T[15]), 17);
 B = C + RotateLeft((B + F(C,D,A) + X[i+15] + T[16]), 22);
 
 //раунд 2
 A = B + RotateLeft((A + G(B,C,D) + X[i+ 1] + T[17]),  5);
 D = A + RotateLeft((D + G(A,B,C) + X[i+ 6] + T[18]),  9);
 C = D + RotateLeft((C + G(D,A,B) + X[i+11] + T[19]), 14);
 B = C + RotateLeft((B + G(C,D,A) + X[i+ 0] + T[20]), 20);
 
 A = B + RotateLeft((A + G(B,C,D) + X[i+ 5] + T[21]),  5);
 D = A + RotateLeft((D + G(A,B,C) + X[i+10] + T[22]),  9);
 C = D + RotateLeft((C + G(D,A,B) + X[i+15] + T[23]), 14);
 B = C + RotateLeft((B + G(C,D,A) + X[i+ 4] + T[24]), 20);
 
 A = B + RotateLeft((A + G(B,C,D) + X[i+ 9] + T[25]),  5);
 D = A + RotateLeft((D + G(A,B,C) + X[i+14] + T[26]),  9);
 C = D + RotateLeft((C + G(D,A,B) + X[i+ 3] + T[27]), 14);
 B = C + RotateLeft((B + G(C,D,A) + X[i+ 8] + T[28]), 20);
 
 A = B + RotateLeft((A + G(B,C,D) + X[i+13] + T[29]),  5);
 D = A + RotateLeft((D + G(A,B,C) + X[i+ 2] + T[30]),  9);
 C = D + RotateLeft((C + G(D,A,B) + X[i+ 7] + T[31]), 14);
 B = C + RotateLeft((B + G(C,D,A) + X[i+12] + T[32]), 20);
 
 //раунд 3
 A = B + RotateLeft((A + H(B,C,D) + X[i+ 5] + T[33]),  4);
 D = A + RotateLeft((D + H(A,B,C) + X[i+ 8] + T[34]), 11);
 C = D + RotateLeft((C + H(D,A,B) + X[i+11] + T[35]), 16);
 B = C + RotateLeft((B + H(C,D,A) + X[i+14] + T[36]), 23);
 
 A = B + RotateLeft((A + H(B,C,D) + X[i+ 1] + T[37]),  4);
 D = A + RotateLeft((D + H(A,B,C) + X[i+ 4] + T[38]), 11);
 C = D + RotateLeft((C + H(D,A,B) + X[i+ 7] + T[39]), 16);
 B = C + RotateLeft((B + H(C,D,A) + X[i+10] + T[40]), 23);
 
 A = B + RotateLeft((A + H(B,C,D) + X[i+13] + T[41]),  4);
 D = A + RotateLeft((D + H(A,B,C) + X[i+ 0] + T[42]), 11);
 C = D + RotateLeft((C + H(D,A,B) + X[i+ 3] + T[43]), 16);
 B = C + RotateLeft((B + H(C,D,A) + X[i+ 6] + T[44]), 23);
 
 A = B + RotateLeft((A + H(B,C,D) + X[i+ 9] + T[45]),  4);
 D = A + RotateLeft((D + H(A,B,C) + X[i+12] + T[46]), 11);
 C = D + RotateLeft((C + H(D,A,B) + X[i+15] + T[47]), 16);
 B = C + RotateLeft((B + H(C,D,A) + X[i+ 2] + T[48]), 23);
 
 //раунд 4
 A = B + RotateLeft((A + I(B,C,D) + X[i+ 0] + T[49]),  6);
 D = A + RotateLeft((D + I(A,B,C) + X[i+ 7] + T[50]), 10);
 C = D + RotateLeft((C + I(D,A,B) + X[i+14] + T[51]), 15);
 B = C + RotateLeft((B + I(C,D,A) + X[i+ 5] + T[52]), 21);
 
 A = B + RotateLeft((A + I(B,C,D) + X[i+12] + T[53]),  6);
 D = A + RotateLeft((D + I(A,B,C) + X[i+ 3] + T[54]), 10);
 C = D + RotateLeft((C + I(D,A,B) + X[i+10] + T[55]), 15);
 B = C + RotateLeft((B + I(C,D,A) + X[i+ 1] + T[56]), 21);
 
 A = B + RotateLeft((A + I(B,C,D) + X[i+ 8] + T[57]),  6);
 D = A + RotateLeft((D + I(A,B,C) + X[i+15] + T[58]), 10);
 C = D + RotateLeft((C + I(D,A,B) + X[i+ 6] + T[59]), 15);
 B = C + RotateLeft((B + I(C,D,A) + X[i+13] + T[60]), 21);
 
 A = B + RotateLeft((A + I(B,C,D) + X[i+ 4] + T[61]),  6);
 D = A + RotateLeft((D + I(A,B,C) + X[i+11] + T[62]), 10);
 C = D + RotateLeft((C + I(D,A,B) + X[i+ 2] + T[63]), 15);
 B = C + RotateLeft((B + I(C,D,A) + X[i+ 9] + T[64]), 21);
 
 A = AA + A;
 B = BB + B;
 C = CC + C;
 D = DD + D;
}
unsigned char key[4];
key[0] = A;
key[1] = B;
key[2] = C;
key[3] = D;
 
}
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
             {
                   string sIn;
  sIn = textBox1->Text;
  
  MD5_hash(sIn,A,B,C,D);
}
0
MrCold
859 / 757 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
25.10.2012, 00:28 #6
сразу за #pragma once
C++
1
2
3
4
#include <iostream>
#include <string>
 
typedef unsigned int uint;
в пространства имен добавить
C++
1
using namespace Runtime::InteropServices;
код кнопки
C++
1
2
3
4
5
6
7
8
9
10
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
 
            
   const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(textBox1->Text)).ToPointer();
 
   std::string sIn(chars); 
 
   MD5_hash(sIn,A,B,C,D);
 
   Marshal::FreeHGlobal(IntPtr((void*)chars));
На указателях можно спотыкнуться . Ну тогда выкладывайте все .
0
25.10.2012, 00:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2012, 00:28
Привет! Вот еще темы с ответами:

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

Как записать длину строки типа string в переменную - C++
Собственно вопрос в заголовке. Спасибо заранее:) Через i=s.size() // где, s -&gt; string, i -&gt; int; не работает

Можно ли в std::string записать Ansi символ (например NUL)? - C++
Можно ли в std::string записать Ansi символ(например NUL)?

Как класс string записать в бинарный файл через вектор? - C++
вопрос такой у меня есть класс. я создаю вектор по этому классу vector&lt;Employee&gt; work; вектор отлично заполняется и вся программа...


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

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

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