[ create a new paste ] login | about

Link: http://codepad.org/3HrmfsVo    [ raw code | output | fork ]

C, pasted on Sep 24:
/*
プログラムの引数に書籍データのファイルと列数(a) を与える。書籍データのファイルは
c2md.csv である。

各行が1つの書籍データを表している。書籍データは出版社名、書名、発行年、本体価格4つの属性を持ち、
それらをカンマ(,)で区切って表している。ただし書名にカンマ(,)が含まれる場合には、書名は二重引用符
(”)で囲まれている。発行年、本体価格は正の整数値で記述されており、情報がない不明の場合は記述がない。

a で指定された列だけを表示せよ。
ただし1行を出版社出版社名を表す文字の配列、書名を表す文字の配列、発行年を表す整数、本体価格
を表す整数に分解する関数bunkatu を実装することで実現せよ。

*/

#include <stdio.h>
#include <stdlib.h>
void bunkatu(char [],char [],char [],int *,int *);
int main(int argc,char *argv[])
{
FILE *f1;
char buf[4048], cname[100], bname[400],num[10];
int a, year,price;
f1 = fopen(argv[1],"r");
a = atoi(argv[2]);
fgets(buf,4048,f1);
while(fgets(buf,4048,f1) != NULL) {
bunkatu(buf,cname,bname,&year,&price);
if (a == 1) printf("%s\n",cname);
else if (a == 2) printf("%s\n",bname);
else if (a == 3) printf("%d\n",year);
else if (a == 4) printf("%d\n",price);
else { puts("列数の指定が間違い"); break; }
}
fclose(f1);
}
void bunkatu(char buf[],char cname[],char bname[],int *y,int *p)
{ 

//ここの穴埋めです。

}

/*
[実行結果]
> ./a.out c2md.csv 2
RNA 実験ノート上巻― RNA の基本的な取り扱いから解析手法まで
RNA 実験ノート下巻― 小分子RNA の解析からRNAi への応用まで
行った! 見た! バイオ・ゲノムベンチャー― これが米国流バイオビジネスだ
・・・
入門無歯顎補綴治療
*/

/*
c2md.csvの中身

出版社名, 書名, 発行年, 本体価格
羊土社,RNA 実験ノート上巻― RNA の基本的な取り扱いから解析手法まで,2008,4300
羊土社,RNA 実験ノート下巻― 小分子RNA の解析からRNAi への応用まで,2008,4200
中山書店, 行った! 見た! バイオ・ゲノムベンチャー― これが米国流バイオビジネスだ,2001,1810
金芳堂, 医療・福祉系学生のための専門基礎科目,2007,5600
・・・
羊土社,"細胞・培地活用ハンドブック― 特徴, 培養条件, 入手法などの重要データがわかる",2007,4500
・・・
医学中央雑誌刊行会, 医学中央雑誌Web 版,,250000
・・・
医歯薬出版, 入門X 線写真を読む,2005,4600
医歯薬出版, 入門無歯顎補綴治療,2006,5000
・・・
*/


Output:
1
Segmentation fault


Create a new paste based on this one


Comments: