"今天" 看 "昨天" 写的程序代码,就像在看笑话。。。
"今天" 看 "昨天" 写的程序代码,就像在看笑话。。。在C++/CLR中。
用textBox给 int 变量和 duoble变量赋值。
textBox的Text类型为String^
先用StringToHGlobalAnsi(String^ str) 把String^转化成char[]字符数组。
再通过数组中每一个字符的ASCII值计算出变量的值
用textBox 输出 int 变量和 duoble变量。
先用ASCII值把变量写入char[]字符数组。
再用PtrToStringAnsi((IntPtr) char*) 把字符数组转化成String^
原先方法,代码如下:
程序代码:
#include "stdafx.h" using namespace System; //把String^ 转化成char* 字符指针 char *str_char(System::String^ str) { char* ch1 = (char*)(void*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(str); return ch1; } //从String^中获取16位整形变量 short NumStr_Num(System::String^ str) { short i=0; short number = 0; char *pchar = str_char(str); while(pchar[i] != 0) { number*=10; number +=(pchar[i++]-'0'); } return number; } //16位整形变量,转化成数据型 String^ System::String^ num_str(short num) { short count = 0; char ch1[20]={0}; short i=1; while(num/i >= 10) i*=10; while(i>=1) { ch1[count++]=num/i+'0'; num%=i; i/=10; } String^ str1= System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)ch1); return str1; }
现在方法,代码如下:
程序代码:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { int num1 = int::Parse(textBox1->Text); textBox2->Text = (num1*1.5).ToString(); double num2 = double::Parse(textBox3->Text); textBox4->Text = (num2/2.5).ToString(); }
"今天" 看 "昨天" 写的程序代码,就像在看笑话。。。
"明天" 看 "今天" 写的程序代码,会不会像在看笑话呢。。。