電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
[C++][9]迴圈、複合及遞增遞減運算子、布林值、陣列跟次方函數
前往頁面 上一頁  1, 2
 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念
上一篇主題 :: 下一篇主題  
發表人 內容
timchio
偶而上來逛逛的過客


註冊時間: 2010-08-02
文章: 7

80.34 果凍幣

發表發表於: 2010-8-2, PM 11:47 星期一    文章主題: 想請問一下大大 引言回覆

不好意思我也是最近才學的新手
我發現標頭檔中的limits和windows.h中存在點問題
就是在大大您教的除錯部份
其中的
cin.ignore(numeric_limits<streamsize>::max(), '/n');
這部分的max()會怪怪的
假如標頭檔只有使用limits的話就無這問題
假如多增加了windows.h這部份的話就會跑出max() ()裡面要加東西
我會加windows.h的原因是因為我想延時跑的時間
還是大大有其他方式可以延時
或者可以解決這標頭檔的方式
回頂端
檢視會員個人資料 發送私人訊息
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2010-8-3, PM 5:58 星期二    文章主題: Re: 想請問一下大大 引言回覆

timchio 寫到:
不好意思我也是最近才學的新手
我發現標頭檔中的limits和windows.h中存在點問題
就是在大大您教的除錯部份
其中的
cin.ignore(numeric_limits<streamsize>::max(), '/n');
這部分的max()會怪怪的
假如標頭檔只有使用limits的話就無這問題
假如多增加了windows.h這部份的話就會跑出max() ()裡面要加東西
我會加windows.h的原因是因為我想延時跑的時間
還是大大有其他方式可以延時
或者可以解決這標頭檔的方式

加了windows.h後,應該只是提示你有另一種max函式
就算不加東西,compile應該一樣會過才對
如果不會過,還請把錯誤訊息po上來,比較方便回覆,謝謝
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2010-8-3, PM 6:05 星期二    文章主題: 引言回覆

denisgod 寫到:
有個很神奇的現象
我把大大的程式co到dev c++去跑
輸入1586的時候 出現數字重複
我把輸出的數字調出來發現 當i=2 pow(10,i)=99
導致他計算上變成1591 有重複數字
可以請教這是什麼原因 應該怎麼處理嗎? 謝謝

抱歉,都忘了你有留言@@"
唔…變成99的原因應該是因為pow函式是以浮點數在計算的
所以有其不精確性
處理方式可以自己編寫一個pow函式,大致如下:
代碼:
int myPow( int num, int times )
{
    if( times == 0 ) num = 1;
    else if( times > 0 )
    {
        for( int i = 1; i < times; ++i )
            num *= num;
    }
    else
    {
        for( int i = 1; i < times; ++i )
            num *= num;
        num = 1 / num;
    }
    return num;
}
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
timchio
偶而上來逛逛的過客


註冊時間: 2010-08-02
文章: 7

80.34 果凍幣

發表發表於: 2010-8-3, PM 6:30 星期二    文章主題: 引言回覆

代碼:
#include <iostream>
#include <limits>
#include <Windows.h>
using namespace std;

void main()
{
   int I;
   cout<<"測試是否開得起檔案"<<endl;
   system("pause");
   cin>>I;
   if (cin.fail())
   {
      cin.clear();
      cin.ignore(numeric_limits<streamsize>::max(), '/n');
   }
   cout<<I<<endl;

}

代碼:

1>------ 已開始建置: 專案: TimC, 組態: Release Win32 ------
1>已經開始建置於 2010/8/3 下午 06:23:55。
1>InitializeBuildStatus:
1>  由於指定了 "AlwaysCreate",因此正在建立 "Release\TimC.unsuccessfulbuild"。
1>ClCompile:
1>  test.cpp
1>test.cpp(15): warning C4003: 巨集 'max' 的實質參數不足
1>test.cpp(15): error C2589: '(' : '::' 右邊的語彙基元不合法
1>test.cpp(15): error C2143: 語法錯誤 : 遺漏 ')' (在 '::' 之前)
1>test.cpp(15): error C2059: 語法錯誤 : ')'
1>
1>建置失敗。
1>
1>經過時間 00:00:01.29
========== 建置: 0 成功、1 失敗、0 最新、0 略過 ==========


錯誤部份大致是這樣,假如去調windows.h就無此問題
回頂端
檢視會員個人資料 發送私人訊息
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2010-8-3, PM 9:14 星期二    文章主題: 引言回覆

這是因為2010版的windows.h多了個max巨集
造成precompiler認知錯誤
你只要把
代碼:
cin.ignore(numeric_limits<streamsize>::max(), '/n');

改成
代碼:
cin.ignore((numeric_limits<streamsize>::max)(), '/n');

即可
precompiler會認知此max非為巨集
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
timchio
偶而上來逛逛的過客


註冊時間: 2010-08-02
文章: 7

80.34 果凍幣

發表發表於: 2010-8-4, PM 1:12 星期三    文章主題: 引言回覆

謝謝大大分享
對我這新手很有幫助
我在上網看到#undef max
這解決方法
順便請問大大
這方法便利性不知道清不清楚
可不可以解略小簡介一下^^
回頂端
檢視會員個人資料 發送私人訊息
yag
Site Admin


註冊時間: 2007-05-02
文章: 688

2673.35 果凍幣

發表發表於: 2010-8-8, AM 11:32 星期日    文章主題: 引言回覆

timchio 寫到:
謝謝大大分享
對我這新手很有幫助
我在上網看到#undef max
這解決方法
順便請問大大
這方法便利性不知道清不清楚
可不可以解略小簡介一下^^

你#undef後
max巨集就不能使用了
不是很建議這樣做
直接加個括號的作法是比較好的
也比較方便
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
happylin
略有貢獻的成員


註冊時間: 2007-07-26
文章: 70

127.34 果凍幣

發表發表於: 2010-8-10, AM 10:03 星期二    文章主題: 引言回覆

引言回覆:

代碼:

for( i = 0; i < 4; i++ )
{
Guess[i] = Input / ( 1000 / (int)pow( 10, i ) );
Input -= Guess[i] * (int)pow( 10, 3 - i ); // 減掉較高位數的數字
}



上面這段程式.如果是我不會這樣寫. 還掉用到 math.h 中的pow function. 此問題跟本不需要用到pow function 就可以解決了

如下
代碼:

int i;
for( i = 3 ; i >=0 ; --i )
{
 Guess[i]=Input%10;
 Input/=10;
}
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念 所有的時間均為 台灣時間 (GMT + 8 小時)
前往頁面 上一頁  1, 2
2頁(共2頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作