30/09/2018, 19:55

Lỗi chương trình Giới thiệu bản thân bằng C++

Giúp mình sửa lỗi này với ,mình loay hoay gần 1 tiếng mà chả đc gì cả

Mình tự học C++,đang đọc đến phần mảng .
Mình tính viết chương trình Giới thiệu bản thân đơn giản bằng C++
Mình viết tầm 10 phút thì xong và sửa mấy lỗi ngớ ngẩn gần nửa tiếng.Tuy nhiên có cái lỗi này mình loay hoay mãi không đc nên quyết định post nên đây .
Mã lỗi :

/home/ubuntu/workspace/Array-cin.getline.cc: In function ‘int main()’:
/home/ubuntu/workspace/Array-cin.getline.cc:67:5: error: expected ‘(’ before ‘{’ token

Mã nguồn chương trình của mình :

[code] //Giới thiệu bản thân :
//Tạo mảng và nhập :
//Tên
//Tuổi
//Tên trường
//Lớp
//Địa chỉ của bạn
//Giới tính của bạn .nam hoặc nữ Lựa chọn giới tinh. Chọn 1 trong 2.Dùng if và else
//Nói đôi điều về bản thân
//Xuất ra Giới thiệu bản thân …

#include

using namespace std;

int main ()
{
int gioitinhcuatoi;
char tencuatoi [50];
char tuoicuatoi [2];
char truongcuatoi [100];
char lopcuatoi [100];
char diachicuatoi [200];

char gioithieuvetoi [400];

cout<<"Giới thiệu về bản thân bạn "<<endl;
cout<<"Nhập vào tên của bạn : "<<endl;
cin.getline (tencuatoi,50);
cout<<"Nhập vào tuổi của bạn : "<<endl;
cin.getline (tuoicuatoi,2);
cout<<"Nhập vào tên trường của bạn : "<<endl;
cin.getline (truongcuatoi,100);
cout<<"Nhập vào lớp của bạn :  "<<endl;
cin.getline (lopcuatoi,100);
cout<<"Nhập vào địa chỉ của bạn : "<<endl;
cin.getline (diachicuatoi,200);
cout<<"Lựa chọn giới tính của bạn :) ";
cout<<"1.Nam";
cout<<"2.Nữ";
cin>>gioitinhcuatoi;

cout<<"Hãy nói một chút về bạn : "<<endl;
cin.getline (gioithieuvetoi,400);

system("clear");
cout<<"Dưới đây là CV của bạn ."<<endl;

cout<<"Họ và tên : "<<tencuatoi<<endl;
cout<<"Tuổi : "<<tuoicuatoi<<endl;
cout<<"Trường : "<<truongcuatoi<<endl;
cout<<"Lớp : "<<lopcuatoi<<endl;

cout<<"Địa chỉ nhà "<<diachicuatoi<<endl;
cout<<"Giới tính : ";
if (gioitinhcuatoi=1)

{
    cout<<"Nam"<<endl;
}
else if (gioitinhcuatoi=2)
{
    cout<<"Nữ"<<endl;
}
else if 
{
    cout<<"Không xác định "<<endl;
}
cout<<"Cảm ơn bạn đã sử dụng ứng dụng :) "<<endl;

return 0;

}

[/code]

Itachi Citus viết 21:59 ngày 30/09/2018

dòng 67: Bạn bỏ if đi
Trong điều kiện if trước đó: Bạn thay “=” thành ==

if (gioitinhcuatoi == 1)//thay dấu = thành ==
{
    cout<<"Nam"<<endl;
}
else if (gioitinhcuatoi == 2)
{
    cout<<"Nữ"<<endl;
}
else //bỏ if
{
    cout<<"Không xác định "<<endl;
}

``

The Wind viết 22:11 ngày 30/09/2018

Cảm ơn bạn nhiều !

Post must be at least 20 characters
Have you tried the button?

The Wind viết 21:55 ngày 30/09/2018

Mình đã thử fix chương trình và nó chạy đc !
Tuy nhiên khi chạy chương trình thì đến cái đoạn nhập giới tính của bạn xong thì nó xuống thẳng dòng nhập
Nhập vào lớp của bạn : luôn thay vì Nhập vào trường của bạn trước.Mình không hiểu là nó kiểu gì nữa…
Kết quả khi chạy chương trình :
Running /home/ubuntu/workspace/Array-cin.getline.cc
Giới thiệu về bản thân bạn
Nhập vào tên của bạn :
Long
Nhập vào tuổi của bạn :
21
Nhập vào giới tính của bạn :
1.Nam
2.Nữ
1
Nhập vào tên trường của bạn :
Nhập vào lớp của bạn :
K^HKhai thác mỏ hầm lò K6B
Dưới đây là Hồ sơ của bạn .
Họ và tên : Long
Tuổi : 21
Giới tính : Nam
Trường :
Lớp : Khai thác mỏ hầm lò K6B
Địa chỉ nhà : Uông Bí,Quảng Ninh
Giới thiệu về bạn : Thích It và gái đệp
Cảm ơn bạn đã sử dụng ứng dụng

Process exited with code: 0

Mã nguồn chương trình của mình sau khi sửa (K giống vs ở trên).tại ở trên khi chạy ra kết quả k như ý mún

[code]//Giới thiệu bản thân :
//Tạo mảng và nhập :
//Tên
//Tuổi
//Tên trường
//Lớp
//Địa chỉ của bạn
//Giới tính của bạn .Tạo hàm để truyền 1 biến số nguyên vào hàm gioitinhcuatoi rồi kiêm tra giới tính bằng if else
//Nói đôi điều về về thân
//Xuất ra CV …

#include

using namespace std;

void gioitinhcuatoi(int gioitinh)
{

if (gioitinh==1)
{
    cout<<"Giới tính : Nam"<<endl;
}
else if (gioitinh==2)
{
    cout<<"Giới tính : Nữ"<<endl;
}
else 
{
    cout<<"Không xác định"<<endl;
}

}

int main ()
{
int gioitinh;
char tencuatoi [50];
char tuoicuatoi [10];
char truongcuatoi [100];
char lopcuatoi [100];
char diachicuatoi [200];

char gioithieuvetoi [400];

cout<<"Giới thiệu về bản thân bạn "<<endl;
cout<<"Nhập vào tên của bạn : "<<endl;
cin.getline (tencuatoi,50);
cout<<"Nhập vào tuổi của bạn : "<<endl;
cin.getline (tuoicuatoi,10);
cout<<"Nhập vào giới tính của bạn : "<<endl;
cout<<"1.Nam"<<endl;
cout<<"2.Nữ"<<endl;
cin>>gioitinh;
cout<<"Nhập vào tên trường của bạn : "<<endl;
cin.getline (truongcuatoi,100);
cout<<"Nhập vào lớp của bạn :  "<<endl;
cin.getline (lopcuatoi,100);
cout<<"Nhập vào địa chỉ của bạn : "<<endl;
cin.getline (diachicuatoi,200);


cout<<"Hãy nói một chút về bạn : "<<endl;
cin.getline (gioithieuvetoi,400);


system("clear");
cout<<"Dưới đây là Hồ sơ của bạn ."<<endl;

cout<<"Họ và tên : "<<tencuatoi<<endl;
cout<<"Tuổi : "<<tuoicuatoi<<endl;
gioitinhcuatoi(gioitinh);
cout<<"Trường : "<<truongcuatoi<<endl;
cout<<"Lớp : "<<lopcuatoi<<endl;

cout<<"Địa chỉ nhà : "<<diachicuatoi<<endl;

cout<<"Giới thiệu về bạn : "<<gioithieuvetoi<<endl;


cout<<"Cảm ơn bạn đã sử dụng ứng dụng :) "<<endl;


return 0;

} [/code]

viết 22:11 ngày 30/09/2018

Lý do là sau khi nhập gioitinh thì trong cin vẫn còn 1 ký tự \n còn thừa, dẫn đến dòng nhập tên trường sẽ nhận ký tự này, nên nó mới chạy tới dòng nhập lớp luôn. Khắc phục thì thêm lệnh cin.ignore(100,'\n') vào sau cin>>gioitinh.

The Wind viết 22:11 ngày 30/09/2018

Cảm ơn freedom nhìu …

Bài liên quan
0