Ncurses - “move” and its deveratives delete screen contents
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
add a comment |
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
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
add a comment |
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
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
c++ ncurses
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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.
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
answered Jan 19 at 23:33
Thomas DickeyThomas Dickey
31.7k62760
31.7k62760
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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