Announcement

Collapse
No announcement yet.

[C++] Hỏi về string rất rất cơ bản?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [C++] Hỏi về string rất rất cơ bản?

    Tình hình là nhập xong số và chương trình không cho đệ nhập chuỗi là sao vậy các huynh.hic:cry:
    "Đệ ở nhà quơ mới lên".Mong các huynh giúp đỡ...:adore:
    PHP Code:
    #include "stdafx.h"
    #include <iostream>
    #include <stdio.h>
    #include <conio.h>
    #include <string>
    using namespace std;
    void main()
    {
        
        
    int i;
        
    char s[100];
        
    cout<<"nhap so bat ky"<<endl;
        
    cin>>i;
        
    cout<<"nhap 1 chuoi"<<endl;
        
    gets(s);
        
    cout<<s;
        
    getch();


  • #2
    Dùng fflush(stdin); xóa bộ nhớ đệm trước khi nhập chuỗi.
    PHP Code:
    #include "stdafx.h"
    #include <iostream>
    #include <stdio.h>
    #include <conio.h>
    #include <string>
    using namespace std;
    void main()
    {
        
        
    int i;
        
    char s[100];
        
    cout<<"nhap so bat ky"<<endl;
        
    cin>>i;
        
    cout<<"nhap 1 chuoi"<<endl;
        
    fflush(stdin);
        
    gets(s);
        
    cout<<s;
        
    getch();

    Comment


    • #3
      á được rùi.tks huynh.nhưng huynh giải thích rõ hơn cho đệ hiểu được k?
      sao phải xóa bộ nhớ đệm rồi mới được nhập chuỗi vậy huynh...và bộ nhớ đệm nó chứa gì trong đó vậy????
      Tks huynh nhieu

      Comment


      • #4
        ông viết c hay c++ vậy, sao lại có đủ thứ lẫn lộn thế ? C thì dùng: fflush(stdin); C++ thì: cin.ignore(); . Khi ông nhập 1 số ở câu lệnh, nhập xong ông phải enter 1 cái, nó thừa cái enter đó nên nó trôi luôn không cho gets.

        Comment


        • #5
          bạn đang lai tạo giữa C và C++, Dùng Cout thì dùng cin luôn đi, Dùng gets chi vậy? hoặc có thể dùng getline luôn cho nó tiện, các dùng thì MSDN đọc cho nhanh tiến bộ =))
          Code:
          Không có chữ ký - nên để dòng này làm chữ ký

          Comment


          • #6
            Hi mem nhóm tư tưởng. ^^

            Giải thích cho bạn rõ hơn nè: Cả 2 cái gets và cin đều lấy dữ liệu từ bộ đệm bàn phím. Có nghĩa là khi bạn gõ bất cứ thứ gì lên keyboard thì điều đầu tiên là keyboard sẽ đẩy nó vào bộ đệm đó trước rồi mới truyền dữ liệu đã nhận được nó cho 2 hàm kia.
            Chú ý là cin thì ko nhận được ký tự enter trong khi gets thì lại nhận được và khi nhận được 1 ký tự enter thì nó cũng dừng nhận tiếp nữa.
            Đó là lý do khi bạn đang nhập một số và sau khi nhấn enter thì cin chỉ nhận được số đó còn enter vẫn còn lưu trên bộ đệm bàn phím . Và vì gets đi ngay phía sau cin nên nó sẽ quét bộ đệm bàn phím và lấy được ký tự enter đó và cũng xong luôn ko làm gì nữa, chương trình lại đi tiếp.

            Comment


            • #7
              Hi...tks các huynh.nói thật C++ thì đệ chỉ biết mỗi cout vs cin...muốn học nhưng k có tài liệu.sư huynh nào có cho đệ xin nhé.càng dễ hiểu càng tốt.:love:

              Comment


              • #8
                Là do không chủ động tìm, chứ trên mạng thiếu gì!
                Ở đây mình có một ít, có thể xài tạm được. tạo 1 cái dropbox rồi syn về. Nhanh nhanh không mình del link đó.
                p.s: c vs c++ thì tu luyện cuốn của Phạm Văn bang chủ ( Phạm Văn Ất) đó :3

                link: https://www.dropbox.com/sh/ha0tp8rex2ybt8e/cUDa_XtKlH?m
                Huỳnh Văn Hoa Xuân
                Mail: luckyboyx1993@gmail.com
                Lao động hăng say - Tình yêu sẽ đến:love:

                Comment


                • #9
                  đọc đc tiếng anh thì bạn cứ thẳng tay đọc luôn cuốn C++ the complete reference đi
                  Code:
                  Không có chữ ký - nên để dòng này làm chữ ký

                  Comment

                  LHQC

                  Collapse
                  Working...
                  X