Ncurses - “move” and its deveratives delete screen contents












1















I'm a newbie programmer and am currently writing a simple Ncurses application, but i faced such a problem - calling the move function or mvwadch as example cleans the window contents after the place i'm moving to.
The code is like:



#include <string>
#include <ncurses.h>
void function(WINDOW* win)
{
std::string somestring = "Test";
waddstr(win, somestring.c_str());
wmove(win , 0, 1);

wrefresh(win);
}


WINDOW* win_ = initscr();
int main()
{
function(win_);
wgetch(win_);
endwin();
}


It leaves only "T", as example, if somestring is "Test".



P.S. Sorry for possible bad English and c++.










share|improve this question




















  • 1





    That's not an MCVE.

    – Thomas Dickey
    Jan 19 at 14:01











  • Oh, sorry, just waked up and forgotten to include the headers.

    – Whert
    Jan 19 at 23:09
















1















I'm a newbie programmer and am currently writing a simple Ncurses application, but i faced such a problem - calling the move function or mvwadch as example cleans the window contents after the place i'm moving to.
The code is like:



#include <string>
#include <ncurses.h>
void function(WINDOW* win)
{
std::string somestring = "Test";
waddstr(win, somestring.c_str());
wmove(win , 0, 1);

wrefresh(win);
}


WINDOW* win_ = initscr();
int main()
{
function(win_);
wgetch(win_);
endwin();
}


It leaves only "T", as example, if somestring is "Test".



P.S. Sorry for possible bad English and c++.










share|improve this question




















  • 1





    That's not an MCVE.

    – Thomas Dickey
    Jan 19 at 14:01











  • Oh, sorry, just waked up and forgotten to include the headers.

    – Whert
    Jan 19 at 23:09














1












1








1


1






I'm a newbie programmer and am currently writing a simple Ncurses application, but i faced such a problem - calling the move function or mvwadch as example cleans the window contents after the place i'm moving to.
The code is like:



#include <string>
#include <ncurses.h>
void function(WINDOW* win)
{
std::string somestring = "Test";
waddstr(win, somestring.c_str());
wmove(win , 0, 1);

wrefresh(win);
}


WINDOW* win_ = initscr();
int main()
{
function(win_);
wgetch(win_);
endwin();
}


It leaves only "T", as example, if somestring is "Test".



P.S. Sorry for possible bad English and c++.










share|improve this question
















I'm a newbie programmer and am currently writing a simple Ncurses application, but i faced such a problem - calling the move function or mvwadch as example cleans the window contents after the place i'm moving to.
The code is like:



#include <string>
#include <ncurses.h>
void function(WINDOW* win)
{
std::string somestring = "Test";
waddstr(win, somestring.c_str());
wmove(win , 0, 1);

wrefresh(win);
}


WINDOW* win_ = initscr();
int main()
{
function(win_);
wgetch(win_);
endwin();
}


It leaves only "T", as example, if somestring is "Test".



P.S. Sorry for possible bad English and c++.







c++ ncurses






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 19 at 23:57







Whert

















asked Jan 19 at 11:46









WhertWhert

114




114








  • 1





    That's not an MCVE.

    – Thomas Dickey
    Jan 19 at 14:01











  • Oh, sorry, just waked up and forgotten to include the headers.

    – Whert
    Jan 19 at 23:09














  • 1





    That's not an MCVE.

    – Thomas Dickey
    Jan 19 at 14:01











  • Oh, sorry, just waked up and forgotten to include the headers.

    – Whert
    Jan 19 at 23:09








1




1





That's not an MCVE.

– Thomas Dickey
Jan 19 at 14:01





That's not an MCVE.

– Thomas Dickey
Jan 19 at 14:01













Oh, sorry, just waked up and forgotten to include the headers.

– Whert
Jan 19 at 23:09





Oh, sorry, just waked up and forgotten to include the headers.

– Whert
Jan 19 at 23:09












1 Answer
1






active

oldest

votes


















0














Your program doesn't wait for user input (e.g., a call to getch) and exits immediately without calling endwin. Because ncurses initializes the terminal to raw mode, that leaves the terminal in raw mode, making the normal translation of newline to carriage-return/line-feed by your shell not work immediately (though most shells recover from this by resetting the mode back to cooked). That causes some text to be overwritten since (instead of advancing to a newline) the shell prompt is written on the same line as the text-message.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54266738%2fncurses-move-and-its-deveratives-delete-screen-contents%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Your program doesn't wait for user input (e.g., a call to getch) and exits immediately without calling endwin. Because ncurses initializes the terminal to raw mode, that leaves the terminal in raw mode, making the normal translation of newline to carriage-return/line-feed by your shell not work immediately (though most shells recover from this by resetting the mode back to cooked). That causes some text to be overwritten since (instead of advancing to a newline) the shell prompt is written on the same line as the text-message.






    share|improve this answer




























      0














      Your program doesn't wait for user input (e.g., a call to getch) and exits immediately without calling endwin. Because ncurses initializes the terminal to raw mode, that leaves the terminal in raw mode, making the normal translation of newline to carriage-return/line-feed by your shell not work immediately (though most shells recover from this by resetting the mode back to cooked). That causes some text to be overwritten since (instead of advancing to a newline) the shell prompt is written on the same line as the text-message.






      share|improve this answer


























        0












        0








        0







        Your program doesn't wait for user input (e.g., a call to getch) and exits immediately without calling endwin. Because ncurses initializes the terminal to raw mode, that leaves the terminal in raw mode, making the normal translation of newline to carriage-return/line-feed by your shell not work immediately (though most shells recover from this by resetting the mode back to cooked). That causes some text to be overwritten since (instead of advancing to a newline) the shell prompt is written on the same line as the text-message.






        share|improve this answer













        Your program doesn't wait for user input (e.g., a call to getch) and exits immediately without calling endwin. Because ncurses initializes the terminal to raw mode, that leaves the terminal in raw mode, making the normal translation of newline to carriage-return/line-feed by your shell not work immediately (though most shells recover from this by resetting the mode back to cooked). That causes some text to be overwritten since (instead of advancing to a newline) the shell prompt is written on the same line as the text-message.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 19 at 23:33









        Thomas DickeyThomas Dickey

        31.7k62760




        31.7k62760






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54266738%2fncurses-move-and-its-deveratives-delete-screen-contents%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Liquibase includeAll doesn't find base path

            How to use setInterval in EJS file?

            Petrus Granier-Deferre