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ố 16 kết quả

Đề tài: Sai mật khẩu

  1. #1
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    Mặc định Sai mật khẩu

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include <string.h>
    4. void main()
    5. {
    6.   char pw[11]; int solan = 0;      // Cho phep nhap 3 lan
    7.  
    8.   clrscr();
    9.  
    10.   do {
    11. clrscr(); gotoxy(30,12) ;
    12. int i = 0;
    13.     while ((pw[i]=getch()) != 13 && ++i < 10)
    14.  
    15.     printf("X") ;  // 13 = Enter
    16.  
    17.    
    18.  
    19. if (strcmp(pw, "nguyen")==0)
    20. {
    21.  printf ( "Moi vào") ;  }
    22.     else { printf( "Sai mat khau. Nhap lai") ; solan++ ; }
    23. } while (solan < 3);
    24.  
    25. getch();
    26. }


    Mình đã nhập đúng mật khẩu rồi nhưng sao nó không hiện ra câu:Mời vào.
    Nhờ các ban kiểm tra giúp!

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

    thêm ký hiệu kết thúc chuỗi vào cuối chuỗi pw hoặc cho chuỗi pw là static char
    mù english+ngu thuật toán+lười--->làm sao trở thành kỹ sư phần mềm

  3. #3
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    thêm ký hiệu kết thúc chuỗi vào cuối chuỗi pw--->làm như thế nào hả bạn

  4. #4
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    445

    Tức là thêm lệnh pw[i] = 0; trước lệnh if.

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

    theo mình thì ko nên dùng strcmp mà ta check từng phần tử, sai ở đâu thì break ở đó

  6. #6
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    Mặc định Sai mật khẩu

    Trích dẫn Nguyên bản được gửi bởi Ada Xem bài viết
    Tức là thêm lệnh pw[i] = 0; trước lệnh if.
    Số 0 có nghĩa là gì vậy bạn.Mà tại sao lại phải có pw[i] = 0 trước if để làm gì vậy?
    Đã được chỉnh sửa lần cuối bởi kegiaumat055 : 19-05-2008 lúc 02:01 PM.

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

    '\0' là ký tự NULL để kết thúc chuỗi ví dụ
    Code:
    char s[]="abc\0d;" 
    puts(s);
    thì khi ta puts sẽ chỉ xuất ra
    abc

  8. #8
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    Mình đã thêm nhưng mà vẫn bị như cũ bạn à

  9. #9
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    445

    Chắc là lỗi đặc trưng của compiler. Mình thử trong gcc thì chạy được.

    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    
    int main()
    {
        char pw[11];
    	int solan = 0;      // Cho phep nhap 3 lan
    	do {
    		int i = 0;
    		while (((pw[i]=getch()) != 13) && (++i < 10))
    		{
                printf("X") ;  // 13 = Enter
    		}
            pw[i]=0;
    		if (strcmp(pw, "nguyen")==0)
    		{
    			printf ( "Moi vao") ;
    			break;
    		}
    		else
    		{
    			printf( "Sai mat khau. Nhap lai") ;
    			solan++ ;
    		}
    	} while (solan < 3);
        getch();
    }

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

    strcmp sẽ so sánh 2 string = cách duyệt từng cặp 2 ký tự trong 2 chuỗi tới khi gặp ZERO char kết thúc chuỗi. Chuỗi # len sẽ return #0. Chuỗi pw của cậu có rác phía sau.
    Cậu sữa code lại như sau:
    Visual C++ Code:
    1. char pw[11] = { 0 };
    2. int solan = 0;
    hay:
    Visual C++ Code:
    1. char pw[11];
    2. int solan = 0;
    3.  
    4. memset(pw, 0, sizeof(pw));

    Tập debug đi, debug từng bước, nhớ watch giá trị của i và pw.
    Đã được chỉnh sửa lần cuối bởi TQN : 19-05-2008 lúc 10:33 PM.

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

  1. Con trỏ trên C Cách khắc phục lỗi.
    Gửi bởi cauberong09 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 24-02-2012, 05:00 PM
  2. Khắc phục nhược điểm của Đệ quy
    Gửi bởi minhtuan.a0 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 25-10-2011, 12:28 AM
  3. Giao khả so sánh và giao diện khả tuần tự ??
    Gửi bởi phuongtv_hvktqs trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 02-07-2011, 12:00 PM
  4. Tìm mật khẩu
    Gửi bởi nguyenvanvien trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 8
    Bài viết cuối: 30-06-2009, 09:53 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