[Hỏi]..giúp e xóa bộ đệm khi nhập xâu

hoangtu8811

Member
10/9/11
126
5
18
đà nẵng
Em có một bài về nhập họ tên, lớp, giới tính...nhưng khi nhập vào thì phần bộ đệm nó tự gắn cho giới tính luôn..mà bên java e chưa biết sữa. Bên C++ dùng fflush(stdin); giúp e tí..
- Bài của e:
PHP:
import java.lang.*;
import java.util.*;
import java.io.*;
class SinhVien{
	private  String hTen;
	private  int tuoi;
	private  String lop;
	private  float dToan;
	private  float dTin;
	public void SinhVien(){	}
    void setHTen(String hTen){
    	this.hTen= hTen;
    }
    void setTuoi(int tuoi){
    	this.tuoi= tuoi;
    }
    void setLop(String lop){
    	this.lop= lop;
    }
    void setdToan(float dToan){
    	this.dToan= dToan;
    }
    void setdTin(float dTin){
    	this.dTin=dTin;
    }
    String gethTen(){
    	return hTen;
    }
    int getTuoi(){
    	return tuoi;
    }
    String getLop(){
        return lop;
    }
    float getdToan(){
    	return dToan;
    }
    float getdTin(){
    	return dTin;
    }
}
public class Lop {
    static int n;
    public static void main(String[] args) {
        SinhVien a[]= new SinhVien[100];
        System.out.print("Nhap so luong sinh vien vao: ");
        Scanner nhap= new Scanner(System.in);
        n= nhap.nextInt();
        int i;
        String str;
        float x;
        int y;
        for(i=0;i<n;i++)
        {
        	a[i]= new SinhVien();
        	System.out.printf("Nhap ho ten: ");
        	str= nhap.nextLine();
        	a[i].setHTen(str);
        	System.out.print("Nhap tuoi vao: ");
        	y= nhap.nextInt();
        	a[i].setTuoi(y);
        	System.out.print("Nhap lop vao: ");
        	str= nhap.nextLine();
        	a[i].setLop(str);
        	System.out.printf("Nhap diem toan vao: ");
        	x=nhap.nextFloat();
        	a[i].setdToan(x);
        	System.out.printf("Nhap diem tin vao: ");
        	x=nhap.nextFloat();
        	a[i].setdTin(x);
        }
       System.out.println("_____________________________--------Danh sach Sinh Vien--------_____________________________________________");
       for(i=0;i<n;i++)
       	System.out.println("    "+a[i].gethTen() +"    "+a[i].getTuoi()+ "  "+a[i].getLop() +"  "+a[i].getdToan() +"  "+a[i].getdTin());
    }
}
Cho e hỏi luôn là làm sao canh chữ in ra như bên C++ vd %5d ạ?
 
  • Like
Reactions: TuanNgoc

hnchcky

Member
9/1/11
198
2
16
Ðề: [Hỏi]..giúp e xóa bộ đệm khi nhập xâu

bạn đừng dùng nextInt hay nextDouble gì hết á, cứ nextLine rồi muốn chuyển sang gì thì pasre thôi
vd:

PHP:
age = Integer.parseInt(kb.nextLine());
 

hoangtu8811

Member
10/9/11
126
5
18
đà nẵng
Ðề: [Hỏi]..giúp e xóa bộ đệm khi nhập xâu

bạn đừng dùng nextInt hay nextDouble gì hết á, cứ nextLine rồi muốn chuyển sang gì thì pasre thôi
vd:

PHP:
age = Integer.parseInt(kb.nextLine());
Mình sửa rồi nhưng sinh viên đầu tiên vẫn bị. Họ tên null luôn..:((..chắc là test bài khác xem sao. Cảm ơn bạn nhé...vế sau trả lời giúm mình luôn nhé..
 

hnchcky

Member
9/1/11
198
2
16
Ðề: [Hỏi]..giúp e xóa bộ đệm khi nhập xâu

còn cái dòng nhập số lượng sinh viên sửa chưa ?
 

TuanNgoc

New Member
23/1/21
1
0
1
UTC
Em có một bài về nhập họ tên, lớp, giới tính...nhưng khi nhập vào thì phần bộ đệm nó tự gắn cho giới tính luôn..mà bên java e chưa biết sữa. Bên C++ dùng fflush(stdin); giúp e tí..
- Bài của e:
PHP:
import java.lang.*;
import java.util.*;
import java.io.*;
class SinhVien{
    private  String hTen;
    private  int tuoi;
    private  String lop;
    private  float dToan;
    private  float dTin;
    public void SinhVien(){    }
    void setHTen(String hTen){
        this.hTen= hTen;
    }
    void setTuoi(int tuoi){
        this.tuoi= tuoi;
    }
    void setLop(String lop){
        this.lop= lop;
    }
    void setdToan(float dToan){
        this.dToan= dToan;
    }
    void setdTin(float dTin){
        this.dTin=dTin;
    }
    String gethTen(){
        return hTen;
    }
    int getTuoi(){
        return tuoi;
    }
    String getLop(){
        return lop;
    }
    float getdToan(){
        return dToan;
    }
    float getdTin(){
        return dTin;
    }
}
public class Lop {
    static int n;
    public static void main(String[] args) {
        SinhVien a[]= new SinhVien[100];
        System.out.print("Nhap so luong sinh vien vao: ");
        Scanner nhap= new Scanner(System.in);
        n= nhap.nextInt();
        int i;
        String str;
        float x;
        int y;
        for(i=0;i<n;i++)
        {
            a[i]= new SinhVien();
            System.out.printf("Nhap ho ten: ");
            str= nhap.nextLine();
            a[i].setHTen(str);
            System.out.print("Nhap tuoi vao: ");
            y= nhap.nextInt();
            a[i].setTuoi(y);
            System.out.print("Nhap lop vao: ");
            str= nhap.nextLine();
            a[i].setLop(str);
            System.out.printf("Nhap diem toan vao: ");
            x=nhap.nextFloat();
            a[i].setdToan(x);
            System.out.printf("Nhap diem tin vao: ");
            x=nhap.nextFloat();
            a[i].setdTin(x);
        }
       System.out.println("_____________________________--------Danh sach Sinh Vien--------_____________________________________________");
       for(i=0;i<n;i++)
           System.out.println("    "+a[i].gethTen() +"    "+a[i].getTuoi()+ "  "+a[i].getLop() +"  "+a[i].getdToan() +"  "+a[i].getdTin());
    }
}
Cho e hỏi luôn là làm sao canh chữ in ra như bên C++ vd %5d ạ?
bạn dùng nextLine khi muốn xóa bộ nhớ đệm nhá thêm
nhap.nextLine() là đc nhé