- 1 名前:デフォルトの名無しさん [2008/04/29(火) 09:44:57 ]
- 言語の入門者向け解説スレです。
・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 26 pc11.2ch.net/test/read.cgi/tech/1206196600/ 過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000 教えて欲しいのではなく丸投げしたいならこちらへ C/C++の宿題を片付けます 105代目 pc11.2ch.net/test/read.cgi/tech/1208268461/
- 602 名前:側近中の側近 ◆0351148456 [2008/05/11(日) 22:39:49 ]
- (っ´▽`)っ
/* *戻り値: *エラーなし:0 *エラーあり:エラーがある行番号(見出し行を除く) */ int existInMaster(void) { int returnCode = -1; /*戻り値*/ FILE *fp = NULL; /*ファイルポインタ*/ char line[1024]; /*ファイル読み込みバッファ*/ int lineCount = 0; /*行番号*/ shohinMaster *sm = NULL; /*商品マスタ配列*/ /*以下、売上ファイルレコード格納用変数*/ char shohinCode[256]; /*商品コード*/ char kokyakuCode[256]; /*顧客コード*/ int suryo; /*数量*/ int count = 0; /*商品マスタ配列サイズ*/ int i; /*ループカウンタ*/ /*商品コードマスタを全て読み込み、商品マスタ配列に格納する*/ fp = fopen("./商品コードマスタ.csv", "r"); fgets(line, sizeof(line), fp); /*1行目は見出し*/ while(fgets(line, sizeof(line), fp) != NULL){ sm = (shohinMaster *)realloc(sm, sizeof(sm[0]) * (count + 1)); sscanf(line, "%[^,],%[^,],%d", sm[count].shohinCode, sm[count].shohinName, &(sm[count].tanka)); count++; } fclose(fp);
- 603 名前:側近中の側近 ◆0351148456 [2008/05/11(日) 22:40:30 ]
- /*商品マスタ配列を商品コードの昇順に並べる*/
qsort(sm, count, sizeof(sm[0]), cmp); /*売上ファイルを1行ずつ読み込み、商品コードを商品マスタ配列と照合する*/ fp = fopen("./売上ファイル.csv", "r"); fgets(line, sizeof(line), fp); /*1行目は見出し*/ while(fgets(line, sizeof(line), fp) != NULL){ lineCount++; sscanf(line, "%[^,],%[^,],%d", kokyakuCode, shohinCode, &suryo); for(i = 0; i < count; i++){ if(strcmp(sm[i].shohinCode, shohinCode) == 0){ break; } /*商品マスタ配列は商品コードの昇順に並べている*/ if(strcmp(sm[i].shohinCode, shohinCode) > 0){ returnCode = lineCount; goto END; } } /*商品マスタ配列にない場合、行番号を返す*/ if(i == count){ returnCode = lineCount; goto END; } } END: return returnCode; } /*商品マスタ配列を並べる時、商品コードの昇順に並ぶようにする*/ int cmp(const void *elem1, const void *elem2){ return strcmp(((shohinMaster *)elem1)->shohinCode, ((shohinMaster *)elem2)->shohinCode); }
|

|