小弟目前就讀資訊科,學校有VB的課程,
自許學習狀況還不錯,除了學校的VB之外,
行有餘力自己想試著接觸Visual C++
目前大部分需要的程式碼都可以藉由膜拜Google或搜尋MSDN查到,
現在有一個地方卡住而不知如何解決

小弟想要做出的功能為:textBox中輸入512,
Press OK後,Label1顯示513(數值+1)
若是單純的鍵入:label1->Text = textBox1->text + 1;
則結果將為"5121",也就是字串並排,而不是數值增加,
於是小弟試著使用:
int a;
a = textBox1->Text;
label1->Text = a + 1;
則出現錯誤C2440與C2664,
一個是String^ 無法轉int,
另一個為int無法轉String^...XD

小弟想在此請問板上各位大大,如何抓取使用者輸入資料的數值?
其功能就如VB中的Val()函數
上網搜到的結果有很多,IntToStr、System::Convert::ToString...等,
不過不知是小弟使用錯誤還是其他原因,並沒有成功,
因此上版請教,小弟先謝謝了

(PS.小弟使用的VC為2008,並非VC6~)
text + 1.......這裡錯了
你可以試試 單步try看看
+1的動作單獨寫一行試試

如果語法不熟,還是多寫幾行比較保險
如果是用VC的話

把string轉成array之後

再用atoi這個Function把array轉成integer

這樣就可以完成了
因為型態轉換的問題

TextBox元件上只能接受 string字串
VB好像可以會自動隱含轉換,所以導致忽略這個觀念了吧

以前的作法就是

atoi 轉成 integer後
再做數學運算

輸出的時候再轉回 字串型態即可

問一下谷哥 或者 MSDN 應該查的到 型態轉換 相關資料囉

VS 2008 還沒玩過

只用過 BCB6、VC6、VC# 2003、VB2005、VC++2005、VC#2005
愛機 P-IV 2.4CG and Q6600 MBC:GA-8IPE1000-L and P5K-Pro VGA:MSI-Fx6600鑽石版 and AT
小弟試出來了,程式碼為:
double a;
String^ b;
b = textBox1->Text;
a = Convert::ToDouble( b );
a += 1;
b = Convert::ToString( a );
label1->Text = b;

呵呵,Step by Step的方式果然比較明瞭,Anyway謝謝各位大大摟!

另外請教樓上大大,請問atoi這個語法如何使用呢?? 再次謝謝~
#include <iostream>
#include <string>

using namespace std;

int main ()
{
int a;
string b;
cout << "give me a number: ";
cin >> b;
a = atoi(b.c_str())+1;
printf ("The value is %d\n",a);
return 0;
}
免責聲明:本文所載資料僅供參考,並不構成投資或人生建議,本人對該資料或使用該資料所導致的結果概不承擔任何責任。
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main ()
{
int a;
string b;
cout << "give me a number: ";
cin >> b;
stringstream( b) >> a;
a++;
printf ("The value is %d\n",a);
return 0;
}
免責聲明:本文所載資料僅供參考,並不構成投資或人生建議,本人對該資料或使用該資料所導致的結果概不承擔任何責任。
phila wrote:
#include &...(恕刪)

不好意思小弟只寫Windows Form喔...還是謝謝大大啦~
從你的程式來看,很明顯是 C# 不是 C++

使用的開發環境是 Visual Studio 2008

請修正一下標題吧~~
arisaka wrote:
從你的程式來看,很明...(恕刪)

需要我擷圖證明我用的是C++而不是C#嗎?
VC++是說Visual C++,很明顯我應該沒有弄錯
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!