
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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Access(アクセス) accessの日付フィールドから前年度だけを取り出したい 3 2022/04/13 23:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ディスプレイの解像度とマウス...
-
擬似コード
-
c言語
-
DLLファイルの逆コンパイラにつ...
-
写真のプログラムは、1からnま...
-
3×3のラテン方陣をつくるプログ...
-
逆コンパイルと逆アセンブルの...
-
卒業研究でよく分からないとこ...
-
VisualStudioでC++クラスを追加...
-
Windows Formアプリからコンソ...
-
gccを行ってもexeファイルが生...
-
VisualStudio2022でC言語プログ...
-
C#でログファイルにファイルパ...
-
【C言語】全角文字の配列を、全...
-
プログラマー達は何故、プログ...
-
これて逆じゃないですか?
-
MACで動く実行ファイルをWindow...
-
C++でデスクトップGUIアプリ開...
-
今ってプログラミング言語は何...
-
mallocについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
年月日の数値化?
-
日付の差分の求め方(日、分)
-
日齢計算プログラム
-
Perlの日付取得で月の表示がお...
-
perlでcheckboxがうまく整理で...
-
パールスクリプトのif else文に...
-
perl セレクトメニューを ↓の...
-
perl Windows 7でファイルの衝...
-
ローカルだと改行されるのに、...
-
サマータイムの判定について
-
Perlの乱数について
-
T-SQL(SQL Server2000) 月数の...
-
C言語のプログラミングについて...
-
ソースの詳細を教えてください。
-
前日の日付取得するには?
-
月見る月はこの月の月
-
Perl スクレイピング処理につ...
-
Schemeのプログラミング うる...
-
CSV読み込み時に条件に合う行(...
-
if文データの別ファイル化について
おすすめ情報