-PR-
解決済み

scanfのことで質問なんですが…

  • すぐに回答を!
  • 質問No.63741
  • 閲覧数131
  • ありがとう数5
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 57% (27/47)

unsigned long long int n;

printf("Please input value : \n");
scanf("%llu", &n);
printf("n = %llu\n", n);

という感じで入力した数字をそのまま出力するプログラムを組んだのですが、そのまま表示されません。どうしてなんでしょうか???
コンパイルは通るのですが…。
また、解決方法はどんなものがあるのでしょうか???
教えていただければ助かります。
お願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル6

ベストアンサー率 75% (3/4)

FreeBSD の gcc-2.7.2.1 で実行しましたが、特に問題なく動作します。
もしかして、変数の最大値を超えて入力してはいませんか?
固定領域長の変数だと、どんなコンパイラでも上限は存在します。


bash-2.02# ./a.out
Please input value :
4294967295
n = 4294967295
bash-2.02# ./a.out
Please input value :
4294967296
n = 0


巨大な整数で計算したい場合は、多バイト長整数ライブラリを使用して下さい。
サンプルとして g++ の Integer.h を使用した例(適当すぎるけど^^;)を載せます。

bash-2.02# cat test2.cc
#include <std.h>
#include <g++/Integer.h>

int main( int ac, char *av[] )
{
Integer *val1 = new Integer(100);
Integer *val2 = new Integer(100);
*val1 = atoI("12345678901234567890");
*val2 = atoI("56789012345678901234");
cout
<< *val1
<< " + "
<< *val2
<< " = \n\t"
<< *val1 + *val2
<< "\n";
cout
<< *val1
<< " * "
<< *val2
<< " = \n\t"
<< *val1 * *val2
<< "\n";
return 0;
}
bash-2.02# ./a.out
12345678901234567890 + 56789012345678901234 =
69134691246913469124
12345678901234567890 * 56789012345678901234 =
701098911537997408286566514313977776260
お礼コメント
ichiro29

お礼率 57% (27/47)

詳しい説明ありがとうございました。
おかげ様で無事解決することができました。
投稿日時 - 2001-04-27 12:56:02
関連するQ&A
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル10

ベストアンサー率 38% (61/158)

えっと...まず使っているソフトを教えてください。 Windowsアプリを作るソフト(VC++など)では、使えないこともあるので... もう少し詳しい状況(どんなプログラムを作ろうとしたのかなど)を教えていただけるとありがたいです。 ...続きを読む
えっと...まず使っているソフトを教えてください。
Windowsアプリを作るソフト(VC++など)では、使えないこともあるので...
もう少し詳しい状況(どんなプログラムを作ろうとしたのかなど)を教えていただけるとありがたいです。
補足コメント
ichiro29

お礼率 57% (27/47)

今作成しているのは、大きい数の素因数分解を行うプログラムです。
使っているのはよく分かりません…。
でもLinuxを使っています。
投稿日時 - 2001-04-14 19:07:56
お礼コメント
ichiro29

お礼率 57% (27/47)

ありがとうございました。
無事解決いたしました…。
投稿日時 - 2001-04-27 12:54:15


  • 回答No.2
レベル11

ベストアンサー率 37% (110/293)

表示されないと言うのはどういうことですか? どんな感じになるのでしょうか。 ...続きを読む
表示されないと言うのはどういうことですか?
どんな感じになるのでしょうか。
補足コメント
ichiro29

お礼率 57% (27/47)

すいません。説明不足でした。
ubsign long long int型の変数に
4294967295以上の数を入力した場合に正しく出力されないのです。
それをするためにはどうすれば良いのでしょうか?
投稿日時 - 2001-04-15 23:32:23
お礼コメント
ichiro29

お礼率 57% (27/47)

ありがとうございました。
無事解決いたしました…。
投稿日時 - 2001-04-27 12:55:01
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ