#include <curses.h>
#include <fstream>
int main(){
initscr();
mvwprintw(stdscr, 1,1, "hello world");
wmove(stdscr, 1,1);
chtype* p = 0;
int n = 0;
n = winchstr(stdscr, p);
std::ofstream test("test.txt");
test << n << " " << (p == nullptr);
endwin();
}
Iはバック文の先頭にカーソルを移動し、hello world
を印刷し、winchstr
を用いp
に画面上にあるものの内容を保存しようとします。ファイルtest.txt
を除いて、私はp
を示唆出力のみ-1 1
は(すなわち、-1)変わらずだったとERR
参照documentationで説明するよう、返されました:ncurses inchstr関数が意図したとおりに動作していませんか?上記で
int型winchstr(WINDOW *勝利、はchtypeの* CHを)。
説明: これらのルーチンは、 が現在または指定された位置から始まる、と 右マージンで終わる、窓からはchtypeまたはcchar_tの文字列を読み取る、またはn個の要素の後に、いずれか小さい方。
戻り値: すべての関数は、読み取られた要素の数、または エラーのERRを返します。
私はドキュメントを誤解しましたか? hello world
で始まる行の内容は、winchstr
を使用した後、p
によって指し示された場所に格納されるべきですか?なぜそれはエラーを返すのですか?
ありがとうございます。私はそれが参照によってポインタを取ったと仮定し、私が望むものを指すポインタの場所を変更しました。 (cursesの 'getyx'関数はまだ2つの渡された整数を変更しません)。 – Silversonic