C++ 我需要包含哪个头文件才能使用 gotoxy() 函数?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/7955145/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Which header file I need to include to use gotoxy() function?
提问by baljeet Singh
This is the student-report-card-project, I got some problems when I shifted this code to the dev C++ from borland C. Now when I try to complile the program in dev C++, it gives the error message that the gotoxy() is not defined. So which header file I need to include to use gotoxy() function?
这是学生成绩单项目,当我将此代码从 borland C 转移到 dev C++ 时遇到了一些问题。现在当我尝试在 dev C++ 中编译程序时,它给出了错误消息 gotoxy()没有定义。那么我需要包含哪个头文件才能使用 gotoxy() 函数?
//***************************************************************
// HEADER FILE USED IN PROJECT
//****************************************************************
#include<iostream>
#include<graphics>
#include<fstream>
#include<iomanip>
using namespace std;
//***************************************************************
// CLASS USED IN PROJECT
//****************************************************************
class student
{
int rollno;
char name[50];
int p_marks,c_marks,m_marks,e_marks,cs_marks;
float per;
char grade;
int std;
void calculate()
{
per=(p_marks+c_marks+m_marks+e_marks+cs_marks)/5.0;
if(per>=60)
grade='A';
else if(per>=50 && per<60)
grade='B';
else if(per>=33 && per<50)
grade='C';
else
grade='F';
}
public:
void getdata()
{
cout<<"\nEnter The roll number of student ";
cin>>rollno;
cout<<"\n\nEnter The Name of student ";
gets(name);
cout<<"\nEnter The marks in physics out of 100 : ";
cin>>p_marks;
cout<<"\nEnter The marks in chemistry out of 100 : ";
cin>>c_marks;
cout<<"\nEnter The marks in maths out of 100 : ";
cin>>m_marks;
cout<<"\nEnter The marks in english out of 100 : ";
cin>>e_marks;
cout<<"\nEnter The marks in computer science out of 100 : ";
cin>>cs_marks;
calculate();
}
void showdata()
{
cout<<"\nRoll number of student : "<<rollno;
cout<<"\nName of student : "<<name;
cout<<"\nMarks in Physics : "<<p_marks;
cout<<"\nMarks in Chemistry : "<<c_marks;
cout<<"\nMarks in Maths : "<<m_marks;
cout<<"\nMarks in English : "<<e_marks;
cout<<"\nMarks in Computer Science :"<<cs_marks;
cout<<"\nPercentage of student is :"<<setprecision(2)<<per;
cout<<"\nGrade of student is :"<<grade;
}
void show_tabular()
{
cout<<rollno<<setw(12)<<name<<setw(10)<<p_marks<<setw(3)<<c_marks<<setw(3)<<m_marks<<setw(3)<<e_marks<<setw(3)<<cs_marks<<setw(6)<<setprecision(3)<<per<<" "<<grade<<endl;
}
int retrollno()
{return rollno;}
}; //class ends here
//***************************************************************
// global declaration for stream object, object
//****************************************************************
fstream fp;
student st;
//***************************************************************
// function to write in file
//****************************************************************
void write_student()
{
fp.open("student.dat",ios::out|ios::app);
st.getdata();
fp.write((char*)&st,sizeof(student));
fp.close();
cout<<"\n\nstudent record Has Been Created ";
system("pause");
}
//***************************************************************
// function to read all records from file
//****************************************************************
void display_all()
{
cout<<"\n\n\n\t\tDISPLAY ALL RECORD !!!\n\n";
fp.open("student.dat",ios::in);
while(fp.read((char*)&st,sizeof(student)))
{
st.showdata();
cout<<"\n\n====================================\n";
system("pause");
}
fp.close();
system("pause");
}
//***************************************************************
// function to read specific record from file
//****************************************************************
void display_sp(int n)
{
int flag=0;
fp.open("student.dat",ios::in);
while(fp.read((char*)&st,sizeof(student)))
{
if(st.retrollno()==n)
{
st.showdata();
flag=1;
}
}
fp.close();
if(flag==0)
cout<<"\n\nrecord not exist";
system("pause");
}
//***************************************************************
// function to modify record of file
//****************************************************************
void modify_student()
{
int no,found=0;
cout<<"\n\n\tTo Modify ";
cout<<"\n\n\tPlease Enter The roll number of student";
cin>>no;
fp.open("student.dat",ios::in|ios::out);
while(fp.read((char*)&st,sizeof(student)) && found==0)
{
if(st.retrollno()==no)
{
st.showdata();
cout<<"\nPlease Enter The New Details of student"<<endl;
st.getdata();
int pos=-1*sizeof(st);
fp.seekp(pos,ios::cur);
fp.write((char*)&st,sizeof(student));
cout<<"\n\n\t Record Updated";
found=1;
}
}
fp.close();
if(found==0)
cout<<"\n\n Record Not Found ";
system("pause");
}
//***************************************************************
// function to delete record of file
//****************************************************************
void delete_student()
{
int no;
cout<<"\n\n\n\tDelete Record";
cout<<"\n\nPlease Enter The roll number of student You Want To Delete";
cin>>no;
fp.open("student.dat",ios::in|ios::out);
fstream fp2;
fp2.open("Temp.dat",ios::out);
fp.seekg(0,ios::beg);
while(fp.read((char*)&st,sizeof(student)))
{
if(st.retrollno()!=no)
{
fp2.write((char*)&st,sizeof(student));
}
}
fp2.close();
fp.close();
remove("student.dat");
rename("Temp.dat","student.dat");
cout<<"\n\n\tRecord Deleted ..";
system("pause");
}
//***************************************************************
// function to display all students grade report
//****************************************************************
void class_result()
{
fp.open("student.dat",ios::in);
if(!fp)
{
cout<<"ERROR!!! FILE COULD NOT BE OPEN\n\n\n Go To Entry Menu to create File";
cout<<"\n\n\n Program is closing ....";
exit(0);
}
cout<<"\n\n\t\tALL STUDENTS RESULT \n\n";
cout<<"====================================================\n";
cout<<"Roll No. Name P C M E CS %age Grade\n";
cout<<"====================================================\n";
while(fp.read((char*)&st,sizeof(student)))
{
st.show_tabular();
}
fp.close();
system("pause");
}
//***************************************************************
// function to display result menu
//****************************************************************
void result()
{
int ans,rno;
char ch;
cout<<"\n\n\nRESULT MENU";
cout<<"\n\n\n1. Class Result\n\n2. Student Report Card\n\n3.Back to Main Menu";
cout<<"\n\n\nEnter Choice (1/2)? ";
cin>>ans;
switch(ans)
{
case 1 : class_result();break;
case 2 : {
do{
char ans;
cout<<"\n\nEnter Roll Number Of Student : ";
cin>>rno;
display_sp(rno);
cout<<"\n\nDo you want to See More Result (y/n)?";
cin>>ans;
}while(ans=='y'||ans=='Y');
break;
}
case 3: break;
default: cout<<"\a";
}
}
//***************************************************************
// INTRODUCTION FUNCTION
//****************************************************************
void intro()
{
gotoxy(35,11);
cout<<"STUDENT";
gotoxy(33,14);
cout<<"REPORT CARD";
gotoxy(35,17);
cout<<"PROJECT";
cout<<"\n\nMADE BY : SULABH AGRAWAL";
cout<<"\n\nSCHOOL : CAMBRIDGE SCHOOL";
system("pause");
}
//***************************************************************
// ENTRY / EDIT MENU FUNCTION
//****************************************************************
void entry_menu()
{
char ch2;
cout<<"\n\n\n\tENTRY MENU";
cout<<"\n\n\t1.CREATE STUDENT RECORD";
cout<<"\n\n\t2.DISPLAY ALL STUDENTS RECORDS";
cout<<"\n\n\t3.SEARCH STUDENT RECORD ";
cout<<"\n\n\t4.MODIFY STUDENT RECORD";
cout<<"\n\n\t5.DELETE STUDENT RECORD";
cout<<"\n\n\t6.BACK TO MAIN MENU";
cout<<"\n\n\tPlease Enter Your Choice (1-6) ";
ch2=getche();
switch(ch2)
{
case '1': clrscr();
write_student();
break;
case '2': display_all();break;
case '3':
int num;
clrscr();
cout<<"\n\n\tPlease Enter The roll number ";
cin>>num;
display_sp(num);
break;
case '4': modify_student();break;
case '5': delete_student();break;
case '6': break;
default:cout<<"\a";entry_menu();
}
}
//***************************************************************
// THE MAIN FUNCTION OF PROGRAM
//****************************************************************
int main()
{
char ch;
intro();
do
{
clrscr();
cout<<"\n\n\n\tMAIN MENU";
cout<<"\n\n\t01. RESULT MENU";
cout<<"\n\n\t02. ENTRY/EDIT MENU";
cout<<"\n\n\t03. EXIT";
cout<<"\n\n\tPlease Select Your Option (1-3) ";
ch=getche();
switch(ch)
{
case '1': clrscr();
result();
break;
case '2': entry_menu();
break;
case '3':exit(0);
default :cout<<"\a";
}
}while(ch!='3');
return 0;
}
//***************************************************************
// END OF PROJECT
//***************************************************************
回答by Benjamin Lindley
You'll need to create it yourself. Include <windows.h>
, then:
您需要自己创建它。包括<windows.h>
,然后:
void gotoxy(int x, int y)
{
static HANDLE h = NULL;
if(!h)
h = GetStdHandle(STD_OUTPUT_HANDLE);
COORD c = { x, y };
SetConsoleCursorPosition(h,c);
}
I shouldn't have to say it, but obviously this is not portable outside Windows, if even that far.
我不应该说它,但显然这在 Windows 之外是不可移植的,即使是那么远。
回答by dacwe
回答by Mohsen
add this header and function in your code:
在您的代码中添加此标头和函数:
#include "windows.h"
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
回答by Ajay Yadav
You could write it on your own:
你可以自己写:
void gotoxy(int x, int y)
{
COORD c = { x, y };
SetConsoleCursorPosition( GetStdHandle(STD_OUTPUT_HANDLE) , c);
}
回答by NekDil
<conio.h>
is part of DOS Based Turbo C++ Compiler. Remember the Blue Screen Compiler.
<conio.h>
是基于 DOS 的 Turbo C++ 编译器的一部分。记住蓝屏编译器。
回答by Love_for_CODE
If you are a beginner......You can to make one. I have my one ...... With this you can also use the user defined values....
如果您是初学者……您可以制作一个。我有我的......有了这个你也可以使用用户定义的值......
#include<iostream.h>
#include<conio.h>
void gotoxy(int i,int j)
{ int o=0,p=0;
for(;p<=j;p++)
{ cout<<"\n";
}
for(;o<=i;o++)
{cout<<" ";
}
}
Now save this code as "*/any filename you want/.h" in the include folder of DevC++ parent dir..
现在将此代码保存为“*/你想要的任何文件名/.h”在DevC++父目录的包含文件夹中..
Now u can use this as a normal header file
现在你可以使用它作为一个普通的头文件
#include<gotoxy.h>
(Here I used gotoxy as my header file name......)
(这里我用的是gotoxy作为我的头文件名......)
Hope this helps you....
希望这对你有帮助......
HAPPY CODING :)
快乐编码:)
回答by Sumit Aggarwal
there is a small piece of code which works for me most of the time.....
有一小段代码大部分时间对我有用.....
#include<iostream>
#include<iomanip> //for setw();
using namespace std;
gotoxy(int x, int y)
{
cout<<setw(x); //horizontal
for(;y>0;y--) //vertical
cout<<endl;
}
int main()
{
gotoxy(10,20);
cout<<"ANYTHING";
return(0);
}