0

を使用してファイルから変数の値を取得していますscanf%. _ 比較する方法%

scanf("%d",&a);

if (a=='$') terminate ; ?? 

機能しません 考えられる解決策は何ですか??

4

3 に答える 3

2

できません。または%dを変換しません。つまり、 a には何も入れません ( を渡す必要があることは言うまでもありません)。変換に失敗した場合はオンのままなので、引き続き読むことができます。%$&astdin

変換が成功したかどうかを確認するには、scanf()の戻り値を確認します。成功した cnversion の数を返します。

if (1 != scanf("%d", &a)) {
  char c = 0;
  scanf(" %c", &c);
  if (c == '%' || c == '$') {
    /* done */
  }
}
于 2013-02-21T05:05:47.433 に答える
0

a =='$'として試すか、整数で読み取った値を格納してチェックします

于 2013-02-21T06:32:06.200 に答える
0

あなたのif条件はと比較aしていません$

これに変更します:
if (a =='$')

  • =代入演算子
  • ==等価演算子

同じことを編集
して比較する%
if(a=='%')

于 2013-02-21T05:02:45.550 に答える