HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0904
Snakellmod_consoleのgetsで...6解決


Snake

リンク

2015/9/4(Fri) 20:08:18|NO.71318

題名の通り,llmod3のconsoleモジュールを使ったプログラムを作っています。
よく,ユーザーに入力させた文字列を取得する「gets」命令を使うのですが
取得した文字列を表示すると「89127612」と勝手に文字列に変換されてしまう
のですが,なぜでしょうか?以下に簡単なスクリプトを載せます。
Windows7,8でも起きていて,不思議だと思い質問させていただきました。

#include "llmod3/console.hsp" //モジュールをインクルード sdim getss,123 *inpput console putz "文字列を入力:" gets getss dialog getss end



この記事に返信する


y.tack

リンク

2015/9/5(Sat) 06:38:19|NO.71350

詳しくはわかりませんが
llmod3は不具合多くて
あんまり信用できなかった記憶があります



mjhd

リンク

2015/9/5(Sat) 11:24:52|NO.71353

こちらの環境では正常に動きましたよ。

#include "llmod3/llmod3.hsp"
を行頭に付け足した以外は何もしてないです。

こちらの環境はWindows8.1、HSP3.5beta2です。

何が原因でしょう?



mjhd

リンク

2015/9/5(Sat) 11:31:47|NO.71354

試しに公式サンプル(sample\llmod3\test5.hsp)を実行してみて同じ問題が出るか確認してみましょう。



Snake

リンク

2015/9/5(Sat) 13:11:49|NO.71360

>mjhdさん
 サンプル(test5.hsp)では正常に動きました。
 しかし,何故か自分で作ると「5124323」みたいに勝手に数値に変換されます。
 最近Windows10 Homeに乗り換えてみたのですが,数値には変換されませんでした。
 謎が残ります。



mjhd

リンク

2015/9/5(Sat) 16:06:34|NO.71380

> Snakeさん
ちなみに、文字列として初期化をしていない変数(整数型の変数)をgetsに渡した場合、「658785」などの数値として設定されるようです。
変数名が間違っていた、初期化をしていなかったなどの心当たりはありませんか?


assert gets getss
などのように書くと、
HSPのデバッグウィンドウの「変数」タブで変数の型を確認することができます。



Snake

リンク

2015/9/9(Wed) 20:16:57|NO.71548

>mjhdさん
異変に気が付いたのは変数は hensu=""だけでセットしていました。
その後に,sdimで初期化したもののダメでした。

しかし現在のPC(Win10 Home)では正常に動作しています。^^
わざわざお答えいただきありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.