ファイル処理演算でプログラムを読み出すには? – プログラミング – Home

ファイル処理演算でプログラムを読み出す...
 
通知
すべてクリア

ファイル処理演算でプログラムを読み出すには?


ピンク
 ピンク
(@ピンク)
ゲスト
結合: 24年前
投稿: 3
Topic starter  

初めまして。今テキストに1月1日~12月31日までの誕生日をテキストに書き、そして自分の誕生日を入力すると同じ誕生日の人が出力されるプログラムを作りたいのですがここまで作りましたのでおかしな点がありましたら是非おしえていただきたいのですが。WINDOWSのC++です#include<stdio.h>
#include<string.h>
main()
{
FILE *fp,*fopen;
char *field1 = %2d%2d%30s;
char *field2 = %-2d%-2d%-30s;

int table[12] = {31,29,31,30,31,30,31,31,30,31,30,31};

int tanjyo_m, tanjyo_d;
char yumei[30];

int stanjyo[12];
int n,f;
long rec = 40;

fp = fopen(a:\\tanjou.txt,r);
if(fp == NULL){
fprintf(stderr,READ ERROR!!\n);
}
printf(\n誕生日は何月ですか??);
scanf(%d,&tanjyo_m);
printf(\n誕生日は何日ですか??);
scanf(%d,&tanjyo_d);
n = 0;

while(n<=4){
fseek(fp,n*rec,0);
fscanf(fp,field1,tanjyo_m,tanjyo_d,yumei);

if(f == 0){
fprintf(stdout,field2,tanjyo_m,tanjyo_d,stanjyo);

}
n++;
}
fclose(fp);
}


引用解決済
トピックタグ
重
 重
(@重)
ゲスト
結合: 24年前
投稿: 5
 

私的意見を少々、

> char *field1 = %2d%2d%30s;
> char *field2 = %-2d%-2d%-30s;
私なら、
#define FIELD1 %2d%2d%30s
#define FILED2 %-2d%-2d%-30s
にします。

> int table[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
これでも問題ないですが、
int table[] = {31,29,31,30,31,30,31,31,30,31,30,31};
この方が良いかと思います。

> while(n<=4){
>
> ~中略~
>
> n++;
> }
この部分は for(n = 0; n <= 4; n++) の方が見やすいかと思います。

以上、完全に個人的意見ですがどうでしょうか?


返信引用
Johnny
 Johnny
(@Johnny)
ゲスト
結合: 24年前
投稿: 12
 

間違いのは fscanf(fp,field1,tanjyo_m,tanjyo_d,yumei); と思う
=>fscanf(fp,field1,&tanjyo_m,&tanjyo_d,yumei);


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました