掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.25319

終了判定
投稿者---johan(2006/01/14 14:32:31)


XP VC++


while (gets(retu) != "//E\0"){

//Eを入力したのにループが終わらないのはなぜなんでしょうか?
初歩的な質問ですいません。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:終了判定 25320 επιστημη 2006/01/14 14:36:42
<子記事> Re:終了判定 25322 fuku 2006/01/14 14:39:52
<子記事> Re:終了判定 25323 RAPT 2006/01/14 14:40:55


No.25320

Re:終了判定
投稿者---επιστημη(2006/01/14 14:36:42)


>//Eを入力したのにループが終わらないのはなぜなんでしょうか?

==, != では文字列を比較できないから。


この投稿にコメントする

削除パスワード

No.25322

Re:終了判定
投稿者---fuku(2006/01/14 14:39:52)



>while (gets(retu) != "//E\0"){
>
>//Eを入力したのにループが終わらないのはなぜなんでしょうか?

//E は文字列だからです.
文字列の比較には strcmp が良いかと思います.


この投稿にコメントする

削除パスワード

No.25323

Re:終了判定
投稿者---RAPT(2006/01/14 14:40:55)


>while (gets(retu) != "//E\0"){

文字列(文字配列)を演算子で比較する事はできません。
文字列の比較には、strcmp() を使用します。



この投稿にコメントする

削除パスワード

No.25365

Re:終了判定
投稿者---johan(2006/01/15 10:48:11)


そうだったんですか。ライブラリ関数を使わないと無理なんですね・・・

皆さんありがとうございました。


この投稿にコメントする

削除パスワード

No.25367

Re:終了判定
投稿者---επιστημη(2006/01/15 11:14:29)


>そうだったんですか。ライブラリ関数を使わないと無理なんですね・・・

==, != では比較できないってだけで、ライブラリ関数でなくたって作ればいい。

/* 同じなら1, さもなくば 0 を返す */
int is_same_string(const char* x, const char* y) {
  while ( *x != '\0' && *y != '\0' ) {
    if ( *x != *y ) return 0;
    ++x;
    ++y;
  }
  return ( *x == *y ) ? 1 : 0;
}




この投稿にコメントする

削除パスワード

No.25368

Re:終了判定
投稿者---johan(2006/01/15 12:46:53)


なるほど。わかりました。詳しく教えてもらいありがとうございます。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧