
inputA.csvには以下のように年月日のみのデータが2列入っております。inputBには2001年1月1日から2014年12月31日までのある商品の価格のデータ(毎日)が入っております。
私はinputAの各行・各列の年月日と等しいものをinputBから検索し、年月日が一致したら、その年月日におけるある商品の価格を理想のoutputのように出力したいと考えています。順番としては、「年月日(L),年月日(R),価格(L),価格(R)」というようにinputAにおける年月日の(L)と(R)と価格が対応するように出力したいです。
しかし、現状のプログラムでは上手くいっておりません。改善点もしくはより良いプログラムがあれば教えていただければ幸いです。
よろしくお願い申し上げます。
/******inputA********/
2001/9/6,2001/10/19
2002/2/22,2002/3/5
2002/3/17,2002/5/2
2001/11/2,2002/1/18
2002/12/31,2003/1/31
2001/5/18,2001/7/24
2001/9/28,2001/10/28
2001/2/8,2001/4/2
2002/12/30,2003/2/4
2001/8/29,2001/10/6
2001/1/1,2001/5/7
2002/10/9,2002/12/25
2001/11/6,2001/12/28
2002/6/12,2002/9/23
2001/5/9,20001/6/3
2002/5/8,2002/6/9
・
・
・
/******inputA********/
/******inputB********/
2001/1/1,135
2001/1/2,125
2001/1/3,125
2001/1/4,126
2001/1/5,127
2001/1/6,127
2001/1/7,124
・
・
・
/******inputB********/
/******理想のoutput********/
2001/9/6,2001/10/19,134,136
2002/2/22,2002/3/5,142,138
2002/3/17,2002/5/2,123,125
2001/11/2,2002/1/18,132,130
2002/12/31,2003/1/31,130,128
2001/5/18,2001/7/24,126,129
2001/9/28,2001/10/28,123,125
2001/2/8,2001/4/2,125,125
2002/12/30,2003/2/4,134,135
2001/8/29,2001/10/6,137,133
2001/1/1,2001/5/7,125,124
2002/10/9,2002/12/25,134,129
2001/11/6,2001/12/28,132,136
2002/6/12,2002/9/23,124,129
2001/5/9,20001/6/3,134,130
2002/5/8,2002/6/9,132,132
・
・
・
/******理想のoutput********/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void){
FILE *inputA;
FILE *inputB;
FILE *output;
char year_L[15],yearR[15];
char year_search[15];
char price[15];
char *price_L,*price_R;
priceb = price;
pricea = price;
if((output = fopen("output.csv", "w"))==NULL){
printf("can't open\n");
}
if((inputA = fopen("inputA.csv","r"))==NULL){
printf("not found A\n");
}
if((inputB = fopen("inputB.csv","r"))==NULL){
printf("not found B\n");
}
while(1){
if(fscanf(inputA,"%[^,],%s\n",year_L,year_R)==EOF) {
break;
}
fseek(inputB, 0, SEEK_SET);
while (1) {
if(fscanf(inputB,"%[^,],%s\n",year_search, price)==EOF) {
break;
}
if((strcmp(year_L,year_search)==0)&&(strcmp(year_R,year_search)==0)){
fprintf(output,"%s,%s,%s,%s\n",year_L,year_R,price_L,price_R);
break;
}
}
}
fclose(inputA);
fclose(inputB);
fclose(output);
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
先月(YYYYMM)の生成方法
-
体重が3kg増える/減る の英語...
-
Application.ScreenUpdating = ...
-
<SELECT>タグの折り返し
-
実行時エラー 3020の対策
-
formで特定のinputを送信しない...
-
VB6のLSETをVB2005で実現するに...
-
JSONで文字列が長い時
-
Use of uninitialized value ---
-
複数列を持ったリストボックス...
-
UWSC SLCTBOXもしくはSELECTに...
-
I2C接続のLCDディスプレイを使う
-
pythonの*
-
ウェブスクレイピング Python B...
-
c言語 16進数の2進数への変換
-
ACCESS テキストボックスを隙...
-
メモリをアドレスを直接指定し...
-
vbaでxmlからNodeListでデータ...
-
VBAでPDFのコピーとリネームを...
-
16進の10進変換について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付の比較について
-
1桁の日付に0を付ける
-
前日の日付取得するには?
-
日付の差分の求め方(日、分)
-
パールスクリプトのif else文に...
-
月見る月はこの月の月
-
VBAでオーバーフローが出て困っ...
-
「型が一致しません」のエラー...
-
CSVファイルに出力
-
Cookieの有効期限について
-
ローカルだと改行されるのに、...
-
Schemeのプログラミング うる...
-
Perlの乱数について
-
perl セレクトメニューを ↓の...
-
Perlの日付の比較に関して
-
perlでcheckboxがうまく整理で...
-
年月日の数値化?
-
日齢計算プログラム
-
サマータイムの判定について
-
大至急お願いします。出力で悩み。
おすすめ情報