Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 19 kết quả

Đề tài: Hàm Atoi để chuyển chuỗi sang kiểu số DWORD

  1. #1
    Ngày gia nhập
    01 2009
    Bài viết
    201

    Wink Hàm Atoi để chuyển chuỗi sang kiểu số DWORD

    VD mình muốn chuyển kiểu TCHAR* sang kiểu DWORD thì cần dùng hàm nào???

  2. #2
    Ngày gia nhập
    01 2009
    Bài viết
    201

    VD như thế này,nó in ra kết quả là 3 chứ không phải là 12,vậy mình phải làm thế nào
    code VC++ 2005
    PHP Code:

    #include "stdafx.h"
    #include<windows.h>
    #include <stdlib.h>
    #include <iostream>
    using namespace std;

    int _tmain()
    {
        
    TCHAR str[100];
        
    lstrcpy(str,L"10");
        
    DWORD satoi((char*)str);
        
    cout<<(s+2);

    Đã được chỉnh sửa lần cuối bởi AdminPro : 13-02-2009 lúc 06:03 PM.

  3. #3
    Ngày gia nhập
    01 2009
    Bài viết
    201

    á,hóa ra không phải sai ở hàm atoi mà là hàm lstrcpy,Mình in ra thế này mà nó cũng in ra linh tinh nè,bạn nào có thể giúp mình để nó in ra đúng kết quả là 123 được không


    Code:
    #include "stdafx.h"
    #include<windows.h>
    #include <stdlib.h>
    #include <iostream>
    using namespace std;
    
    int _tmain()
    {
    	TCHAR str[100];
    	lstrcpy(str,L"123");
    	cout<<str<<"\n";
    }

  4. #4
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Cậu thử wcscpy(str,TEXT("123")); xem.
    Đã được chỉnh sửa lần cuối bởi Tab : 13-02-2009 lúc 07:15 PM.
    What you see is never what you get...

  5. #5
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Cậu AdminPro này lẫn lộn lung tung giữa TCHAR, Unicode và không Unicode.
    Đọc trong MSDN article về TCHAR.

  6. #6
    Ngày gia nhập
    01 2009
    Bài viết
    201

    Mặc định Hàm Atoi để chuyển chuỗi sang kiểu số DWORD

    Trích dẫn Nguyên bản được gửi bởi TQN Xem bài viết
    Cậu AdminPro này lẫn lộn lung tung giữa TCHAR, Unicode và không Unicode.
    Đọc trong MSDN article về TCHAR.
    em có đọc nhưng chỉ thấy nó nói thế này
    A WCHAR if UNICODE is defined, a CHAR otherwise.

    This type is declared in WinNT.h as follows:


    #ifdef UNICODE
    typedef WCHAR TCHAR;
    #else
    typedef char TCHAR;
    #endif
    hic ,mình có làm theo voidmain nhưng nó vẫn vậy,chắc mình nhầm bước nào roài :(
    PHP Code:
    #include "stdafx.h"
    #include<windows.h>
    #include <stdlib.h>
    #include <iostream>
    using namespace std;

    int _tmain()
    {
        
    TCHAR str[100];
        
    wcscpy(str,TEXT("123"));
        
    cout<<str<<"\n";
        return 
    0;


  7. #7
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Chuỗi str là wide string, cậu dùng cout để in kết quả thì thật nực cười.
    Visual C++ Code:
    1. #include <windows.h>
    2. #include <tchar.h>
    3.  
    4. int main()
    5. {
    6.     TCHAR text[100];
    7.     wcscpy(text,TEXT("Xin chào ...!"));
    8.     ::MessageBox(NULL,text,TEXT("..."),MB_OK);
    9.     return 0;
    10. }
    What you see is never what you get...

  8. #8
    Ngày gia nhập
    01 2009
    Bài viết
    201

    đoan code này mà VC++6 thì OK nhưng VC++ 2005 mình không biết sửa thế nào để nó in ra kết quả đúng là 12
    PHP Code:
    #include "stdafx.h"
    #include<windows.h>
    #include <stdlib.h>
    #include <iostream>
    using namespace std;

    int _tmain()
    {
        
    TCHAR str[100];
        
    lstrcpy(str,TEXT("10"));
        
    DWORD satoi((char*)str);
        
    TCHAR trunggian[100];
        
    wsprintf(trunggian,TEXT("%d"),(s+2));
        
    MessageBox(0,trunggian,TEXT("jsds"),0);
        return 
    0;

    híc híc,nếu làm như cậu chỉ được cái phần in ra màn hình thôi,chứ mình muốn là muốn thao tác trên cái số mà mình chuyển từ chuỗi sang cơ,Nếu làm như cậu thì Mình chuyển từ chữ 10 ra số thì nó thành 1,rồi đem đưa về chuỗi nó vẫn là 1...bó tay
    Đã được chỉnh sửa lần cuối bởi AdminPro : 13-02-2009 lúc 08:58 PM.

  9. #9
    Ngày gia nhập
    01 2009
    Bài viết
    64

    Trích dẫn Nguyên bản được gửi bởi AdminPro Xem bài viết
    đoan code này mà VC++6 thì OK nhưng VC++ 2005 mình không biết sửa thế nào để nó in ra kết quả đúng là 12
    PHP Code:
    #include "stdafx.h"
    #include<windows.h>
    #include <stdlib.h>
    #include <iostream>
    using namespace std;

    int _tmain()
    {
        
    TCHAR str[100];
        
    lstrcpy(str,TEXT("10"));
        
    DWORD satoi((char*)str);
        
    TCHAR trunggian[100];
        
    wsprintf(trunggian,TEXT("%d"),(s+2));
        
    MessageBox(0,trunggian,TEXT("jsds"),0);
        return 
    0;

    híc híc,nếu làm như cậu chỉ được cái phần in ra màn hình thôi,chứ mình muốn là muốn thao tác trên cái số mà mình chuyển từ chuỗi sang cơ,Nếu làm như cậu thì Mình chuyển từ chữ 10 ra số thì nó thành 1,rồi đem đưa về chuỗi nó vẫn là 1...bó tay

    cái này lạ thật đó

  10. #10
    Ngày gia nhập
    04 2007
    Bài viết
    134

    Vậy thì đừng dùng tchar, chuyển tchar thành char (dùng hàm gì quên rồi, cứ search là ra thôi)

    char str[100] = "10";
    DWORD s= atoi(str);

Các đề tài tương tự

  1. Lệnh atoi không convert được từ string sang con trỏ
    Gửi bởi sonic trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 2
    Bài viết cuối: 12-11-2013, 11:15 AM
  2. Chuyển chuỗi tiếng việt sang chuỗi số và ngược lại
    Gửi bởi saonam trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 18-06-2011, 07:28 AM
  3. Chuyển chuỗi sang số mà không dùng hàm atoi()
    Gửi bởi more08 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 10-06-2010, 07:28 PM
  4. Chuyển một số sang chuỗi | Chuyển 1 số sang xâu ?
    Gửi bởi xuanhung_cntt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 03-05-2009, 11:48 PM
  5. chuyển từ một kí tự lấy ra từ mảng kí tự sang chuỗi
    Gửi bởi binhdinh0708 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 25-12-2008, 07:01 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn