Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 11
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    sao debug, chưa nhập đã chạy ?!?

    Mã:
    #include <iostream>
    #include <conio.h>
    using namespace std;
    int main ()
    {
    	typedef struct {
    		char tenmh[20];
    		float diemmh;
    	}Subject;
    	struct Student{
    		char tenhs[20];
    		int tuoihs;
    		char lophs[10];
    		Subject subject[10];
    		char xeploai[10];
    	};
    	Student student;
    	int i, j;
    	cout<<"moi ban nhap ten hoc sinh :";
    	cin>>student.tenhs;
    	cout<<"
    moi ban nhap tuoi hoc sinh :";
    	cin>>student.tuoihs;
    	cout<<"
    moi ban nhap lop hoc sinh :";
    	cin>>student.lophs;
    	i=1;j=1;
    	while (i!=0)
    	{
    		cout<<"
    subject["<<j<<"].tenmh:";
    		cin>>student.subject[j].tenmh;
    		cout<<"
    subject["<<j<<"].diemmh:";
    		cin>>student.subject[j].diemmh;
    		j++;
    		cout<<"
    ban co muon tiep tuc ko ?Neu ko hay~ nhap so 0, neu co hay nhap so 1:";
    		cin>>i;
    	}
    	getch();
    	return 0;
    }
    chạy nó ra thế này ạ

    Mong anh chị giúp em, nó bị lỗi gì vậy ạ

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn dùng hàm cin>>student.tenhs;
    nên nó chỉ đọc đến kí tụ cách thôi==>doc chu quynh
    còn phần sau nó sẽ gán luôn cho cin>>student.tuoihs;
    Bạn dùng hàm cin.get(str,max)==>hàm này đọc tời khi ấn enter or đạt đến số lượng mã bạn quy định

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    mình đã chỉnh lại, dùng cin.get như bạn nói rồi, như sau nhưng vẫn chạy không được)
    Mã:
    #include <iostream>
    #include <conio.h>
    using namespace std;
    int main ()
    {
    	typedef struct {
    		char tenmh[20];
    		float diemmh;
    	}Subject;
    	struct Student{
    		char tenhs[20];
    		int tuoihs;
    		char lophs[10];
    		Subject subject[10];
    		char xeploai[10];
    	};
    	Student student;
    	int i, j;
    	cout<<"moi ban nhap ten hoc sinh :";
    	cin.get(student.tenhs,100);
    	cout<<"
    moi ban nhap tuoi hoc sinh :";
    	cin>>student.tuoihs;
    	cout<<"
    moi ban nhap lop hoc sinh :";
    	cin.get(student.lophs,100);
    	i=1;j=1;
    	while (i!=0)
    	{
    		cout<<"
    subject["<<j<<"].tenmh:";
    		cin.get(student.subject[j].tenmh,100);
    		cout<<"
    subject["<<j<<"].diemmh:";
    		cin>>student.subject[j].diemmh;
    		j++;
    		cout<<"
    ban co muon tiep tuc ko ?Neu ko hay~ nhap so 0, neu co hay nhap so 1:";
    		cin>>i;
    	}
    	getch();
    	return 0;
    }
    kết quả chạy như sau :

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn thử thay bằng hàm gets(student.tenhs) xem có được không
    Bạn thêm thư viện #include<stdio.h> nữa nhé

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    - gets forever [IMG]images/smilies/biggrin.png[/IMG]!

    Mã:
    #include <iostream>#include <conio.h> using namespace std; int main (){    typedef struct    {        char tenmh[20];        float diemmh;    }Subject;     struct Student    {        char tenhs[20];        int tuoihs;        char lophs[10];        Subject subject[10];        char xeploai[10];    };     Student student;    int i, j;    cout<<"moi ban nhap ten hoc sinh :";    gets(student.tenhs);//  cin.get(student.tenhs,20);     cout<<"
    moi ban nhap tuoi hoc sinh :";    cin>>student.tuoihs;     cout<<"
    moi ban nhap lop hoc sinh :";//  cin.get(student.lophs,10);    gets(student.lophs);     i=1;j=1;    while (i!=0)    {        cout<<"
    subject["<<j<<"].tenmh:";        cin.get(student.subject[j].tenmh,100);        cout<<"
    subject["<<j<<"].diemmh:";        cin>>student.subject[j].diemmh;        j++;        cout<<"
    ban co muon tiep tuc ko ?Neu ko hay~ nhap so 0, neu co hay nhap so 1:";        cin>>i;    }    getch();    return 0;}

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    mình đã thử làm như bạn nói rồi, như sau vẫn không được, nó ra tùm lum)
    Mã:
    #include <iostream>
    #include <conio.h>
    #include <stdio.h>
    
    using namespace std;
    
    int main ()
    {
        typedef struct
        {
            char tenmh[20];
            float diemmh;
        }Subject;
    
        struct Student
        {
            char tenhs[20];
            int tuoihs;
            char lophs[10];
            Subject subject[10];
            char xeploai[10];
        };
    
        Student student;
        int i, j;
        cout<<"moi ban nhap ten hoc sinh :";
        gets(student.tenhs);
    //  cin.get(student.tenhs,20);
    
        cout<<"moi ban nhap tuoi hoc sinh :";
        cin>>student.tuoihs;
    
        cout<<"moi ban nhap lop hoc sinh :";
    //  cin.get(student.lophs,10);
        gets(student.lophs);
    
        i=1;j=1;
        while (i!=0)
        {
            cout<<"subject["<<j<<"].tenmh:";
            gets(student.subject[j].tenmh);
            cout<<"subject["<<j<<"].diemmh:";
            cin>>student.subject[j].diemmh;
            j++;
            cout<<"ban co muon tiep tuc ko ?Neu ko hay~ nhap so 0, neu co hay nhap so 1:";
            cin>>i;
        }
        getch();
        return 0;
    }
    kết quả như sau :

    Anh chị nào biết giúp em với ạ

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nói về gets nếu bạn muốn nhập vào một xâu có độ dài tùy ý mà không phải xác định trước số phần tử tối đa. Bạn có thể sử dụng như sau trong IDE C++ có hỗ trợ STL sử dụng bằng getline thay thế gets

    Mã:
    #include<iostream>#include <string>using namespace std;int main(){ string str; cout<<"Enter a string with various length ="; getline(cin,str); cout<<str<<endl; system("pause");}

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Đây là kết quả mình chạy code của bạn
    Do mình viết trên turboc++
    nên mình chỉ thay đổi #include <iostream>->#include <iostream.h>
    và bỏ dòng using namespace std;
    Mình thấy đúng đấy chứ

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    có thể thay "Subject subject[10];" trong code trên bằng câu lệnh con trỏ *subject đc ko ạ, nếu thay thì code trên phải đc viết lại như nảo ạ ?
    Anh chị nào biết thì chỉ em với ạ, em cảm ơn.

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Đọc "Các dòng tin chuẩn C++" của thầy Phạm Văn Ất bạn nhé. Lưu ý cách sử dụng cin.ignore(), đọc xong bạn sẽ biết cần phải làm j cho bài tập trên

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •