[ create a new paste ] login | about

Link: http://codepad.org/rOdSDD97    [ raw code | fork ]

C, pasted on Feb 6:
#include <stdio.h>

#define MAXID 100

typedef struct sData{
	int id1;
	char name[32];
	int tanka;
	int id2;
	int zaiko;
}sData;

int main(void){
	int no,num,ans,i,j,k;
	char str[32];
	sData shohin[MAXID]={0,"",0,0,0};
	FILE *fp1, *fp2;
	
	/* ファイルオープン */
	fp1 = fopen("data1.txt", "r");
	fp2 = fopen("data2.txt", "r");
	if(fp1 == NULL || fp2 == NULL) {
		printf("File Open Error!\n");
		return 1;
	}
	/* data1.txt ファイル読み込み */
	while(fscanf(fp1, "%d", &num)!=EOF){			//ID読み込み
		no=num;
		shohin[no].id1=num;
		i=0;
		shohin[no].name[i]=fgetc(fp1);
		do{
			shohin[no].name[i]=fgetc(fp1);		//商品名読み込み
			if(shohin[no].name[i]=='\n'){		//(一文字ずつ読み込み)
				shohin[no].name[i]='\0';
			}
			i++;
		}while(shohin[no].name[i-1]!='\0');
		fscanf(fp1, "%d", &num);			//単価読み込み
		shohin[no].tanka=num;
	}
	/* data2.txt ファイル読み込み */
	while(fscanf(fp2, "%d", &num)!=EOF){			//ID読み込み
		no=num;
		shohin[no].id2=num;
		fscanf(fp2, "%d", &num);			//在庫読み込み
		shohin[no].zaiko=num;
	}
	/* ファイルクローズ */
	fclose(fp1);
	fclose(fp2);
	
	/* 商品名入力 */
	printf("商品名 -->");
	scanf("%s", str);
	
	/* 検索 */
	k=0;
	for(j=1;j<MAXID && k!=1;j++){
		i=0;
		while(1){
			if(shohin[j].name[i]!=str[i]){
				k=0;
				break;
			}
			if(shohin[j].name[i]=='\0'){
				k=1;
				break;
			}
			i++;
		}
	}
	if(k==0) {
		printf("見つかりませんでした。");
	} else {
		no=j-1;
		/* 在庫総額 */
		ans=shohin[no].tanka * shohin[no].zaiko;
		/* 結果表示 */
		printf("ID:[%d]\n", shohin[no].id1);
		printf("商品名:%s\n", shohin[no].name);
		printf("単価:%d円\n", shohin[no].tanka);
		printf("在庫数:%d個\n", shohin[no].zaiko);
		printf("在庫総額:%d円\n", ans);
	}
	return 0;
}


Create a new paste based on this one


Comments: