Single char to/from x/y?

This is a discussion on Single char to/from x/y? within the C Programming forums, part of the General Programming Boards category; Can anyone tell me way where I can get/put a single char at any x/y on the screen?...

  1. #1
    Guest Sebastiani's Avatar
    Join Date
    Aug 2001
    Location
    Waterloo, Texas
    Posts
    5,708

    Single char to/from x/y?

    Can anyone tell me way where I can get/put a single char at any x/y on the screen?
    Code:
    #include <cmath>
    #include <complex>
    bool euler_flip(bool value)
    {
        return std::pow
        (
            std::complex<float>(std::exp(1.0)), 
            std::complex<float>(0, 1) 
            * std::complex<float>(std::atan(1.0)
            *(1 << (value + 2)))
        ).real() < 0;
    }

  2. #2
    and the hat of wrongness Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    32,671
    Isn't this in the faq ?

  3. #3
    Guest Sebastiani's Avatar
    Join Date
    Aug 2001
    Location
    Waterloo, Texas
    Posts
    5,708
    Actually, it's not...and yes, I am trying to look it up, but since i am at work, I can't just sit here and do research... More specifically, I know how to gotoxy. But then how might I "grab" the char at that position, and further, how to "place" a char at that position (hopefully, without using printf() et al...)? I do realize there are differences between each OS's implementation, and both examples are welcome.
    Code:
    #include <cmath>
    #include <complex>
    bool euler_flip(bool value)
    {
        return std::pow
        (
            std::complex<float>(std::exp(1.0)), 
            std::complex<float>(0, 1) 
            * std::complex<float>(std::atan(1.0)
            *(1 << (value + 2)))
        ).real() < 0;
    }

  4. #4
    and the hat of wrongness Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    32,671
    Well for DOS with a conio.h, you have

    #include <conio.h>
    int gettext(int _left, int _top, int _right, int _bottom, void *_dest);
    int puttext(int _left, int _top, int _right, int _bottom, void *_source);
    When you allocate memory for this, remember each on-screen char has an attribute byte as well

    You might get some portability by using say ncurses package, but you'd need to check whether it has a 'get' function for on-screen text.

  5. #5
    Guest Sebastiani's Avatar
    Join Date
    Aug 2001
    Location
    Waterloo, Texas
    Posts
    5,708
    Thank you for the tip. I am going to create a multithreaded "windowing" sytem for the console, and will be using these functions in a layer below the "text-positioning-calculation" engine that will be running the show... Could I use the two functions you listed in unix? Or are you saying I will need to do that in ncurses? Either way, I would be placing these function calls in generic wrappers that would allow portability.

    And what is meant by "an attribute byte"? Where/how to access it?
    Code:
    #include <cmath>
    #include <complex>
    bool euler_flip(bool value)
    {
        return std::pow
        (
            std::complex<float>(std::exp(1.0)), 
            std::complex<float>(0, 1) 
            * std::complex<float>(std::atan(1.0)
            *(1 << (value + 2)))
        ).real() < 0;
    }

  6. #6
    and the hat of wrongness Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    32,671
    > Could I use the two functions you listed in unix?
    No - you need ncurses for this

    > And what is meant by "an attribute byte"?
    In DOS text mode, the attribute byte contains the colour/flash state of each char

  7. #7
    Guest Sebastiani's Avatar
    Join Date
    Aug 2001
    Location
    Waterloo, Texas
    Posts
    5,708
    ok, well thanks again Salem. Have a good day!
    Code:
    #include <cmath>
    #include <complex>
    bool euler_flip(bool value)
    {
        return std::pow
        (
            std::complex<float>(std::exp(1.0)), 
            std::complex<float>(0, 1) 
            * std::complex<float>(std::atan(1.0)
            *(1 << (value + 2)))
        ).real() < 0;
    }

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Another syntax error
    By caldeira in forum C Programming
    Replies: 31
    Last Post: 09-05-2008, 01:01 AM
  2. Sorting Linked Lists
    By DKING89 in forum C Programming
    Replies: 6
    Last Post: 04-09-2008, 07:36 AM
  3. The Interactive Animation - my first released C program
    By ulillillia in forum A Brief History of Cprogramming.com
    Replies: 48
    Last Post: 05-10-2007, 02:25 AM
  4. Half-life SDK, where are the constants?
    By bennyandthejets in forum Game Programming
    Replies: 29
    Last Post: 08-25-2003, 11:58 AM
  5. comparing fields in a text file
    By darfader in forum C Programming
    Replies: 9
    Last Post: 08-22-2003, 08:21 AM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21