![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_15.png?5a7ff87)
「address2.txt」に登録してあるアドレスを検索するプログラムなのですが、アドレスが検索されない時に再度検索できるように付け足したのですが、「continueとbreakの位置が誤っている」と表示されます。どう訂正すればうまくいくのでしょうか?
#define FNAME "address2.txt"
#define RECORDLEN 16
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *format = "%-15s\n";
int main()
{
FILE *fp;
char search[16], address[16],ans[8];
int no = 0, find = 0;
fp = fopen(FNAME, "r+");
if(fp==NULL){
perror("ファイルエラー\n");
return -1;
}
printf("アドレスの入力-- ");
gets(search);
while (1) {
fseek(fp, RECORDLEN * no++, SEEK_SET);
if (fscanf(fp, "%s", address) == EOF)
break;
if (strstr(address, search) != NULL) {
find++;
printf("アドレス: %s\n", address);
}
}
if(find>=1){
printf("アドレスが一致しました。" );
}
else {
printf("アドレスが一致しません。\n");
printf("再度検索し直しますか?(Y/N)\n");
gets(ans);
if(ans[0]=='y'||ans[0]=='Y')
continue;
else
break;
}
fclose(fp);
return 0;
}
No.5
- 回答日時:
ANo2です。
すいません。先ほどは括弧対応のみ見て発言してしまいました。
仕様があいまいなのですが、再検索時に再度入力を促すのであれば、
下記コードの前に、もう一階層ループが必要となるのではないでしょうか。
(検索に対する、画面入出力インターフェイスのメインループ)
printf("アドレスの入力-- ");
gets(search);
今あるのは、ファイルシーク用のループしかないですよね!
※先ほどからこの投稿を何回もしてるんですが、うまくいきません。
何度も同じような回答が反映されてしまったら、申し訳ないです。
(これは3回目です)
確かにcontinueとbreakの問題は解決できたのですが、再検索がうまくできません。あと別の問題が発生したのでそれと一緒にもう一度質問させていただきます。
何度も回答もらい迷惑かけてすいませんm(__)m
No.4
- 回答日時:
ANo2です。
すいません。先ほどは括弧対応のみ見て発言してしまいました。
仕様があいまいなのですが、再検索時に再度入力を促すということであれば、下記コードの直前にさらにループが必要かと思われます。
printf("アドレスの入力-- ");
gets(search);
そうすると、納得いくのですが・・・
No.3
- 回答日時:
ANo2です。
さきほどは、ざっと見て答えてしまいました。
仕様があいまいなのですが、再検索時に入力を促すのであれば、
printf("アドレスの入力-- ");
この外にさらにループが必要なのでは・・・
そうすると、やりたいことがわかる気がします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループを途中で抜けたいのですが。
-
break文でループを一気に抜ける...
-
do-while文が禁止される理由
-
if文でスキップしたい場合は?
-
入力した文字列から母音だけを...
-
プログラミングC言語についての...
-
if文の中にfor文なのか、for文...
-
Excel VBAで年度をまたぐ期間の...
-
C言語のwhile()文での大括弧の...
-
C言語forループが完結した場合...
-
C言語初心者です。このプログラ...
-
C言語 数字を削除する関数
-
getchar()の記述
-
無限ループ対策
-
独習C 素数テスタ・・・分から...
-
C言語 while文 無限ループ 不可...
-
ループの特定入力終了
-
C言語について
-
COBOLのEVALUATE文
-
H8/3048マイコンAD/DA変換について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
break文でループを一気に抜ける...
-
ループを途中で抜けたいのですが。
-
do-while文が禁止される理由
-
入力した数値を倍々するプログラム
-
For文の終了値を関数にしても問...
-
C言語forループが完結した場合...
-
エクセルVBAで Do While (1)って?
-
入力した文字列から母音だけを...
-
if文の中にfor文なのか、for文...
-
Excel VBAで年度をまたぐ期間の...
-
C言語、whileループを抜け出す...
-
for文while文の無限ループの違...
-
プログラムで関数は使わない方...
-
Cプログラムが終了しない
-
PIC のプログラムについて ど...
-
アルゴリズムです!四つの数字...
-
UWSCにてある一定の動作を無限...
-
繰り返し文の利点について
-
ループの特定入力終了
-
PAD図の書き方
おすすめ情報