2011-11-28 87 views
-3
class knygos { 
public: 
    int nr; 
    char pavadinimas[25]; 
    char autorius[25]; 
    int egz_sk; 

    void go_to(int x, int y) { 
     COORD c; 
     c.X = x - 1; 
     c.Y = y - 1; 
     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c); 
    } 

    void knygu_sarasas() { 
     ifstream myFile("data.bin", ios::in | ios::binary); 
     while (myFile.read ((char *) this, sizeof (knygos))) { 
      go_to(2,6); 
      cout << nr << endl; 
      cout << "Pavadinimas" << pavadinimas << endl; 
      cout << "Autorius" << autorius << endl; 
      cout << "Egzemploriai "<< egz_sk << endl; 
     } 
     myFile.close(); 
    } 
}; 

void main() { 
    knygos ob; 
    ob.knygu_sarasas(); 
} 

为什么当我使用功能go_to(2,6); while循环工作的只有1次,当我不能使用此功能循环工作normaly(6次),我不知道哪里是问题,普莱舍帮助家伙; )C++ while循环做最大1次

+6

了解它当然,这甚至不编译!请发布真实的代码。 –

+0

代码很大;( – Wizard

+3

什么是'read'函数调用应该做的事情?'(char *)this' ......我的眼睛在燃烧 – Potatoswatter

回答

0

你有没有意识到,如果你设置光标IN循环到(2,6)的位置,所有的互为作用将WITE到SAME地方,effetivly互相覆盖,并且只生产“一”输出的所有6个或许多粒子?

0

你可以使用ncurses类型的输入,如键盘/鼠标和输出如screen.If你使用mvprintw()家庭功能,你可以设置X和Y相同于DOS在gotoxy。 我忘了cout和cin,并使用ncurses库,你可以从here.

+0

这个家族的一个很好的优势,具有getch()家庭功能。 – PersianGulf