Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 27 kết quả

Đề tài: [ Solved ]Kiểm tra kí tự nhập vào

  1. #1
    Ngày gia nhập
    08 2008
    Bài viết
    46

    Mặc định [ Solved ]Kiểm tra kí tự nhập vào

    Thông thương khi tớ nhập vào từ bàn phím (hay từ file), chỉ cần khai báo biến đó. Nói chung viết một cách đơn giản như sau:
    Code:
    #include<iostream>
    using namespace std;
    int main(){
        int a;
        cout<<"\nNhap vao so nguyen: ";
        cin>>a;
        cout<<"\nSo a la: "<<a;
        return 0;
    }
    khi tớ muốn kiểm tra xem kí tụ nhập vào từ bàn phím hoặc từ file có phải là kí tự số không, nếu là kí tự kiểu char thì in ra lỗi. Có hàm nào trong C++ cho phép kiểm tra không nhỉ?
    Hạnh phúc luôn đợi ta mỉn cười lại với nó.(^,,^).

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Ko có hàm nào vậy đâu. Bạn phải nhập vào chuỗi trước rồi kiểm tra chuỗi đó.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    08 2008
    Bài viết
    46

    kiểm tra như thế nào nhỉ? Tớ đang làm mà không được. tớ có đoạn mà như sau:
    Code:
    #include<iostream>
    using namespace std;
    int main(){
        int a;
        cout<<"\nNhap vao mot so a: ";
        cin>>a;
        cout<<"\nSo a la: "<<a;
        if(a != '%d')
            cout<<"\n loi roi\n";
        return 0;
    }
    Nhưng muốn kiểm tra cho số float lai không được.
    Code:
    #include<iostream>
    using namespace std;
    int main(){
        float a;
        cout<<"\nNhap vao mot so a: ";
        cin>>a;
        cout<<"\nSo a la: "<<a;
        if(a != '%f')
            cout<<"\n loi roi\n";
        return 0;
    }
    đoạn này thì khi tớ đánh vào 4 hoặc 4,5 nó đều bảo lỗi rồi!, làm gì lại thế được nhỉ?!
    Đã được chỉnh sửa lần cuối bởi hahonga3 : 14-11-2008 lúc 08:50 PM.
    Hạnh phúc luôn đợi ta mỉn cười lại với nó.(^,,^).

  4. #4
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Trích dẫn Nguyên bản được gửi bởi hahonga3 Xem bài viết
    khi tớ muốn kiểm tra xem kí tụ nhập vào từ bàn phím hoặc từ file có phải là kí tự số không, nếu là kí tự kiểu char thì in ra lỗi. Có hàm nào trong C++ cho phép kiểm tra không nhỉ?
    C++ Code:
    1. // thử mã giả nhé
    2. using namespace std;
    3. int main()
    4. {
    5.      char a;
    6.      cout<< "nhap a"; cin>>a;
    7.      if(a < '0' || a > '9'){
    8.         cout<<" la làng lên";
    9.         return 1;
    10.        }
    11.       //chuyển từ chuổi sang số.
    12.      return 0;
    13. }

  5. #5
    Ngày gia nhập
    08 2008
    Bài viết
    46

    Trích dẫn Nguyên bản được gửi bởi zkday2686 Xem bài viết
    Cplusplus Code: | Lựa chọn code | Ẩn/Hiện code |
    // thử mã giả nhé
    using namespace std;
    int main()
    {
    char a;
    cout<< "nhap a"; cin>>a;
    if(a < '0' || a > '9'){
    cout<<" la làng lên";
    return 1;
    }
    //chuyển từ chuổi sang số.
    return 0;
    }

    bài này của bạn tơ nhập kí tự vào thì bảo sai, trong khi đó rõ ràng khai báo: char a;! ý bạn là gì?
    Hạnh phúc luôn đợi ta mỉn cười lại với nó.(^,,^).

  6. #6
    Ngày gia nhập
    11 2008
    Bài viết
    186

    Mặc định [ Solved ]Kiểm tra kí tự nhập vào

    Kim demo cho bạn cách sử dụng <cctype> nha ^^

    C++ Code:
    1. #include <iostream>
    2. #include <cctype>
    3. #include <string>
    4.  
    5. void print(char const& c, std::string const& type)
    6. {
    7.     std::cout << "char '" << c
    8.     << "' "   << "is type of '" << type << "'" << std::endl;
    9. }
    10.  
    11.  
    12. int main(int argc, char *argv[])
    13. {
    14.     std::string input;
    15.     std::cout << "Nhap vao 1 ki tu roi <enter>: ";
    16.     std::cin  >> input;
    17.  
    18.     std::string::const_iterator e = input.end();
    19.     for(std::string::const_iterator it = input.begin();
    20.         it != e; ++it)
    21.     {
    22.         if (isalpha(*it))
    23.             print(*it, "alphabet");
    24.         else if (isdigit(*it))
    25.             print(*it, "digit");
    26.         else
    27.             print(*it, "other type");
    28.  
    29.     }
    30.  
    31.     return EXIT_SUCCESS;
    32. }

  7. #7
    Ngày gia nhập
    08 2008
    Bài viết
    46

    Bài bạn Kin viết đúng là cái tớ đang tìm. Nhưng tơ không hiểu rõ lắm về mấy dòng sau:
    Code:
    string input;
        cout << "Nhap vao 1 ki tu roi <enter>: ";
        cin  >> input;
    
        std::string::const_iterator e = input.end();
    	for(string::const_iterator it = input.begin();it != e; ++it)
    bạn giải thích giùm tớ mấy dòng
    dòng "string input" có phải khai báo một biến input kiểu string không? sao lạ vậy?
    Đã được chỉnh sửa lần cuối bởi hahonga3 : 14-11-2008 lúc 10:11 PM.
    Hạnh phúc luôn đợi ta mỉn cười lại với nó.(^,,^).

  8. #8
    Ngày gia nhập
    09 2008
    Nơi ở
    Kĩ viện
    Bài viết
    169

    Code:
        string input;
        cout << "Nhap vao 1 ki tu roi <enter>: ";
        cin  >> input;
    
        for(string::const_iterator it = input.begin();it != input.end(); ++it)
    Lặp bình thường thôi mà bạn?.

    Quái, một ký tự rồi enter là thế nào .

    Edit:

    Đằng nào chả duyệt từng ký tự, thế này (a < '0' || a > '9') có phải nhanh không nào.
    Phá toái hư không - Bạch nhật thăng thiên.

  9. #9
    Ngày gia nhập
    08 2008
    Bài viết
    46

    Tớ chưa gạp kiểu lặp này bao giờ, khai báo string input này, rồi vòng lặp đấy nữa, tớ muốn hiểu nó kĩ kĩ một chút.
    Hạnh phúc luôn đợi ta mỉn cười lại với nó.(^,,^).

  10. #10
    Ngày gia nhập
    09 2008
    Nơi ở
    Kĩ viện
    Bài viết
    169

    Vòng lặp for, học C++ ai chả biết.

    for(khởi tạo; kiểm tra; mần răng mỗi lần lặp)
    {
    }

    string là class để lưu chuỗi, class đó lại cung cấp một số thứ để thao tác với chuỗi, hết, super slim.

    Vòng lặp này C++ bạn còn gặp nhiều, nếu qua C# hay VB có quả foreach ngon hơn há há.
    Phá toái hư không - Bạch nhật thăng thiên.

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

  1. [ Solved ]Nhập thông tin cho 1 lớp từ tệp dữ liệu ?
    Gửi bởi khanhtungx7 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 04-11-2008, 10:32 AM
  2. [ Solved ]Xét giá trị của 1 số khi nhập
    Gửi bởi lovedtn trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 20-10-2008, 01:21 AM
  3. [ Solved ]Lỗi nhập nhằng trong chuyển kiểu
    Gửi bởi demontaihack trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 08-09-2008, 10:17 PM
  4. [ Solved ]Tổng đường chéo lớn nhất
    Gửi bởi Masterwin 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: 01-09-2008, 01:48 PM
  5. [ Solved ]Xuất nhập tập tin!!
    Gửi bởi yentin3 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 12-04-2008, 09:49 AM

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