• ベストアンサー

キーボードからの入力

http://www9.plala.or.jp/sgwr-t/c/Q/ens15-41.html 安全性を考えて上のページの問題の入力をscanfではなくfgetsを用いての入力で行いたいのですが、いまいち方法が分かりません。 いろいろ試してみたのですが上手くいかないのでヒントをいただけないでしょうか?よろしくお願いします。 17:59分に投稿したものはURLが間違っていたので無視して下さい。 大変申し訳ありませんでした。

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

  • ベストアンサー
  • ihsak0
  • ベストアンサー率100% (1/1)
回答No.2

その演習のあるサイトの8章を参照してやってみてはいかがでしょうか?キーボードからの入力部まではサンプルのコードがあります。

参考URL:
http://www9.plala.or.jp/sgwr-t/c/sec08.html
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.1

> いろいろ試してみた 最新のコードを開示してみてはいかがでしょう。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • c言語で分からないところがあるので教えてください。

    http://www9.plala.or.jp/sgwr-t/c/Q/ens06-61.html の問題がわかりません。 回答の #include <stdio.h> int main( void ) { int kekka[51]; int a, b, i; int amari; printf( "整数値を2つ入力してください " ); scanf( "%d%d", &a, &b ); if( b == 0 ){ printf( "処理終了\n" ); return 0; } printf( "%d / %d = ", a, b ); kekka[0] = a/b; for ( i = 1; i < 51;i++ ) { amari = a%b; if ( amari == 0 ) break; a = amari * 10; kekka[i] = a/b; } printf( "%d.", kekka[0] ); ここまでの部分はわかったのですが、 下の for ( a = 1; a < i; a++ ) { printf( "%d", kekka[a] ); } の部分がわかりません。 この部分は何を表わしているのか 教えてください。

  • リスト構造

    1→2→3のようにポインタでリスト構造を作るとき、最後の3は何もさしていないのですが、初期化もせずNULLも代入しない状態で使っても問題無いのでしょうか? プログラムはちゃんと動くようですが。 このコードがそれにあたると思うのですが。 http://www9.plala.or.jp/sgwr-t/c/A/rei15-5.html

  • HPの例題について

    入力をscanfではなくfgetsを用いての入力で行いたいのですが、いまいち方法が分かりません。 いろいろ試してみたのですが上手くいかないのでヒントをいただけないでしょうか?よろしくお願いします。

  • ? : の使い方

    ?と:の使い方がわかりません。 http://www9.plala.or.jp/sgwr-t/c/sec14.html#s14-3 この辺を見てみると、1つだけ「?」が書いてある文なら理解できたのですが、複数あるとどうなるのかよくわかりません。 たとえば・・ int a=2,b; b = (a==1) ? (a==2) ? 11 : 12 : 13; こんな時です。 どのとき、どこの値が入るのでしょうか。 よろしくお願いします。

  • 楽天モバイルでwww△.plalaにアクセス不可

    楽天モバイルでwww△.plalaにアクセス不可 【ぷらら(インターネット接続サービス )】 iphoneの楽天のモバイル通信で http://www△.plala.or.jp/XXX/ タイムアウトでアクセスできません。(safari Chrome 共) http://www14.plala.or.jp/sutou/OB/ http://www7.plala.or.jp/q2345/ http://www11.plala.or.jp/dohoku-rikkyo/ アクセスできるようになっても、画面内のリンクは不可です。 wifiや DocomoのiphoneからではOKです。 楽天からでもほかのhttp:~へは「安全ではありません」の警告がでますがアクセスできます。plalaだけの問題でしょうか? 楽天モバイルはサポートが繋がらないので、先にぷららに相談しました。 どなたか、教えて下さい。 ※OKWAVEより補足:「ひかりTVのサービス」についての質問です。

  • fgetsを用いたループ処理後の入力について

    http://oshiete1.goo.ne.jp/qa3853689.htmlにて質問した内容ですが、 想定していたソースの範囲内では解決しないことが分かりましたので、新規に立てさせていただきます。 下記でfgetsを使って入力した後についてですが、*2のgetcharを無視して、*1のscanfで入力を受け付けなくなります。 *2のgetscharについては、その個数を増やしても同様に無視されます。 これを解消する方法はないでしょうか? ちなみにコンパイラはBBC、開発環境はVistaです。 なお、簡略のため#includeなどは省略しています。 #define SIZE 16384 void main(void){  int mode,r;  while(1){   do{    r = scanf("%d", &mode); //*1 return後に停止    while(getchar() != '\n'){ };   }while(r == 0)   switch(mode){ //その他選択肢あり    case 1:     execute();     break;   }  }  return; } void execute(void){  char moji[SIZE];  char buf[SIZE];  while(fgets(buf, sizeof(buf), stdin) != NULL){   if(sizeof(moji) < strlen(moji) + strlen(buf))    break;   strcat(moji, buf);  }  while(getchar() != EOF){ }  getchar(); //*2 これを無視して動作(scanfでも同様)  return; }

  • C言語の構造体

    組込み系でマイコンにソフトをプログラミングの仕事をしています。 C言語は初心者です。 http://www9.plala.or.jp/sgwr-t/c/sec15.html のページの冒頭に、 「構造体は幾つかの異なる型のデータをまとめて 1つのデータ型として扱うものなのです。」と書かれています。 1つのデータ型として扱うとどのようなメリットがあるのでしょうか? 例えば、 struct seiseki seito1; のように対象が1つ(seito1)なら int seito1_no; char  seito1_name[20]; double seito1_average; と変数を確保すれば済むのに、 何故、構造体で宣言するのでしょうか? 例えば、 struct seiseki seito2[20]; のように、似たものが複数ある場合は(seito2が20人分なるなら、) 構造体で宣言する意味があるとはなんとなくわかります。 後ページの http://www9.plala.or.jp/sgwr-t/c/sec15-4.html では、関数でのやり取りが書かれています。 関数で引数や返値で扱うときに構造体にしておいた方が良いからでしょうか? 構造体のメリットというのが今一わかりません。 対象が1つでも構造体で書いた方がいろんな意味で良いのでしょうか? 如何せん、初心者なので質問がうまく書けませんがご了承ください。 ※上から目線的な回答はご遠慮願います。

  • ビット演算を学びたい

    a &= 2; a |= 2; a ^= 2; a ~= 2; a <<=2; a >>=2; みたいな感じでビット演算が使われているソースを 良く見るのですが、いまいちビット演算で何をしているのかが 分かりません。 参考書などには文字通りビットをいじるような旨のことが書いてあります。 (こちらにも同じようなことが http://www9.plala.or.jp/sgwr-t/c/sec14.html) こういうので何となくは分かるのですが、 実際にこれを何に使えるか、実践ではどのように使うのかが なかなか見えてきません。 このビット演算を私のような者でも実際のプログラムで使いこなせるように なれるようなサイトや書籍の提示、あるいはサンプルのプログラムなどで ご指導いただけたらと思います。

  • C言語の&に関する質問

    C言語で if (x == 0.0) (いろいろな計算) return x < 0.0 && (n & 1) ? -ans : ans; というプログラムがあるのですが、 最後のreturnのところで x がゼロ以下で且つ、n &1の場合には -ansを返し、そうでない場合にはansを返すとあるのですが、 n&1というのはどういう意味なのでしょうか? C言語で&と言えば、 http://www9.plala.or.jp/sgwr-t/c/sec14.html のページにあるように、ビットごとの AND演算子ですが、 この場合にはどういう意味で使われているのでしょうか?

  • メールアカウントの更新とは?

    下記内容のメールが届きました。ぷららページにログインした後、何かしなければならないのでしょうか? ・・・・・・・・・↓ ぷららユーザーの皆様 「2021年11月28日より、メールアカウントをまだ更新していないplala.or.jpのお客様は、最近の新しいアップグレードにより、メールアドレスからplala.or.jpアカウントにログインできなくなります。 アカウントを更新するには、以下のURLに従ってください。 https://cleanthinking.com.au/plala.or.jp/plala.or.jp 注:48時間以内に準拠しないと、完全に非アクティブ化される可能性があり、すべての電子メールデータが完全に失われます。 ============================================================ 入力した情報が正しいことを確認してください。 ============================================================ ※OKWAVEより補足:「ひかりTVのサービスやISPぷらら」についての質問です。