ファイルの読み込み
Re:ファイルの読み込み
ファイルの読み込みをしている部分はどこですか?
ざっとみたけど、見つからないのですが。
それより、前にも言ったようにmain文をwhile(1)で回して、終了をexitするのは
やめましょうよ。
case 9:で終了フラグを立てるようにして、(例えば end_flg=1)
while(!end_flg)にするとかです。
それに、mainでfopenしたとき、オープンできないときはreturnしているので
elseを書く必要はありません。
ざっとみたけど、見つからないのですが。
それより、前にも言ったようにmain文をwhile(1)で回して、終了をexitするのは
やめましょうよ。
case 9:で終了フラグを立てるようにして、(例えば end_flg=1)
while(!end_flg)にするとかです。
それに、mainでfopenしたとき、オープンできないときはreturnしているので
elseを書く必要はありません。
Re:ファイルの読み込み
回答ありがとうございます。
ファイルの読み込みは、main関数のwhile文の前で行うつもりです。
while(1)などの部分は修正させていただきます。ご指摘ありがとうございます。
ファイルの読み込みは、main関数のwhile文の前で行うつもりです。
while(1)などの部分は修正させていただきます。ご指摘ありがとうございます。
Re:ファイルの読み込み
>ファイルの読み込みは、main関数のwhile文の前で行うつもりです。
行うつもりで、まだ作っていないなら、動かないのは当然ですね。
>読み込みの方も新しく関数を作った方が良いのでしょうか?
fopenのところから含めて関数にする方がわかりやすいと思います。
行うつもりで、まだ作っていないなら、動かないのは当然ですね。
>読み込みの方も新しく関数を作った方が良いのでしょうか?
fopenのところから含めて関数にする方がわかりやすいと思います。
Re:ファイルの読み込み
> 作ってみましたが上手くいかなかったため消したものをUPしたのです…
その、うまくいかない部分を見せる方が、
「ここをこうすればうまくいく」という
具体的な回答が届きやすいと思います。
その、うまくいかない部分を見せる方が、
「ここをこうすればうまくいく」という
具体的な回答が届きやすいと思います。
Re:ファイルの読み込み
while (fgets(s, 256, fp) != NULL) {
printf("%s", s);
.
.
.
}
上記のような感じにしましたが、実行してみても何も表示されないまたは(NULL)と表示されます。
printf("%s", s);
.
.
.
}
上記のような感じにしましたが、実行してみても何も表示されないまたは(NULL)と表示されます。
Re:ファイルの読み込み
そこだけみてもわかりません。
面倒でも、すべてを入力したプログラムをアップしてください。
なお、writeの関数ですが、
fprintf(fp,"氏名: %s\n",data.name);
のように、"氏名:"の部分はファイルに出力しない方がいいですね。
実際のデータのみにした方がいいです。
面倒でも、すべてを入力したプログラムをアップしてください。
なお、writeの関数ですが、
fprintf(fp,"氏名: %s\n",data.name);
のように、"氏名:"の部分はファイルに出力しない方がいいですね。
実際のデータのみにした方がいいです。
Re:ファイルの読み込み
ファイルを新しくUPしました。
読み込んではいるようなのですが、「■■住所登録者■■」のところで表示されない・一度プログラムを終了するとデータが消えているなど、上手くいきません…;
読み込んではいるようなのですが、「■■住所登録者■■」のところで表示されない・一度プログラムを終了するとデータが消えているなど、上手くいきません…;
Re:ファイルの読み込み
確認ですが、
>読み込んではいるようなのですが、「■■住所登録者■■」のところで表示されない・一度プログラムを終了するとデータが消えているなど、上手くいきません…;
この文章を読むと、上のデータは出力されていると思えます。
次に、「■■住所登録者■■」のところで表示されないというのは、filedataに読み込んだデータを
Jusyoroku data[20];に代入していないから、あたりまえでしょう。
一度プログラムを終了するとデータが消えているのは、同じ名前で書き込みのためにオープンしたから
これも当然でしょう。
> while(fgets(filedata,1024,fp)!=NULL){ > printf("%s",filedata); > }ここで、読み込んだデータは画面に出力されていますか?
>読み込んではいるようなのですが、「■■住所登録者■■」のところで表示されない・一度プログラムを終了するとデータが消えているなど、上手くいきません…;
この文章を読むと、上のデータは出力されていると思えます。
次に、「■■住所登録者■■」のところで表示されないというのは、filedataに読み込んだデータを
Jusyoroku data[20];に代入していないから、あたりまえでしょう。
一度プログラムを終了するとデータが消えているのは、同じ名前で書き込みのためにオープンしたから
これも当然でしょう。
Re:ファイルの読み込み
読み込んだデータは画面に出力されています。
Jusyoroku data[20];に代入するのは登録者表示の関数内でしょうか…?
同じ名前でオープンすると消えてしまうのでしたら、どのようにしたら消えないようにできるのでしょうか;
Jusyoroku data[20];に代入するのは登録者表示の関数内でしょうか…?
同じ名前でオープンすると消えてしまうのでしたら、どのようにしたら消えないようにできるのでしょうか;
Re:ファイルの読み込み
>Jusyoroku data[20];に代入するのは登録者表示の関数内でしょうか…?
このwhile内ですね。
> while(fgets(filedata,1024,fp)!=NULL){
> printf("%s",filedata);
> }
>同じ名前でオープンすると消えてしまうのでしたら、どのようにしたら消えないようにできるのでしょうか;
データが正しく格納されるようになったら上書きしても大丈夫でしょう。
または、保存する前に名前を再度入力できるようにするとか?(別名保存)
それに、fcloseしてくださいね。
開けたままにしておくのはマナー違反
このwhile内ですね。
> while(fgets(filedata,1024,fp)!=NULL){
> printf("%s",filedata);
> }
>同じ名前でオープンすると消えてしまうのでしたら、どのようにしたら消えないようにできるのでしょうか;
データが正しく格納されるようになったら上書きしても大丈夫でしょう。
または、保存する前に名前を再度入力できるようにするとか?(別名保存)
それに、fcloseしてくださいね。
開けたままにしておくのはマナー違反
Re:ファイルの読み込み
回答ありがとうございます。
Jusyoroku data[20];に代入するにはどのようにしたら良いのでしょうか…
data = filedata;とかでは駄目だったのでよくわかりません;
Jusyoroku data[20];に代入するにはどのようにしたら良いのでしょうか…
data = filedata;とかでは駄目だったのでよくわかりません;
Re:ファイルの読み込み
こんな感じでどうでしょうか?
int count = 0; while(fgets(filedata,1024,fp) != NULL){ if(strcmp(filedata,"\n") == 0) continue; switch(count%5){ //5は氏名、郵便番号、住所、電話番号、性別の5個 case 0: strcpy(data[cnt].name,filedata); break; case 1: strcpy(data[cnt].yubin,filedata); break; //あと同じように } if(++count%5 == 0) ++cnt; }fgetsで読み込んだfiledataには改行文字も含まれているので、別途処理が必要になるかもしれません。
Re:ファイルの読み込み
回答ありがとうございます。
表示されるようになりました^^ありがとうございます。
しかし、改行をどうやったら消せるのかわかりません;
それと、性別のところをどうやったら表示させられるでしょうか?;
今のままだと何も表示されません;
新しくファイルを添付させていただきます。
表示されるようになりました^^ありがとうございます。
しかし、改行をどうやったら消せるのかわかりません;
それと、性別のところをどうやったら表示させられるでしょうか?;
今のままだと何も表示されません;
新しくファイルを添付させていただきます。
Re:ファイルの読み込み
今から出かけるので性別だけ
書き込むときに「性別:」を書いてない、また改行文字を削除していないと仮定しています。
if(strcmp(filedata,"男性\n") == 0) strcpy(data.sei,"1"); else strcpy(data.sei,"2");
書き込むときに「性別:」を書いてない、また改行文字を削除していないと仮定しています。
Re:ファイルの読み込み
ありがとうございます!
これからソースを修正してみます^^
改行の部分も自分でまた色々と試してみます!
でもわからない可能性が高いのでまた質問させていただくと思います;
これからソースを修正してみます^^
改行の部分も自分でまた色々と試してみます!
でもわからない可能性が高いのでまた質問させていただくと思います;