あなたが探している情報は、この日記には記されていない可能性が高いです。(検索で来た人用)
にらどんは一杯500円。尚、出前は承っておりません。ご了承下さい。

なんだこれ。。。
横長いコード貼りますよ。

// if(代入数 != 20) break;
if( _stscanf_s(buf, L"%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,]",
	cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15,	// 7
	cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15,	// 14
	cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15, cells[cnt++], 15)			// 20
!= 20) break;

さぁさぁこれでどうやって代入されるでしょうか!
答え!フォーマットの最初の要素が一番最後!そこから降順に代入されます!
cells[0]に代入されるのは一番最後の%[^,]なんですよ。cells[20]が一番最初。
なんだこれ。。。
取得はとりあえずこのままにして、forでの代入を逆順にした。
あとファイルサイズの関係を把握してもうちょっとだな。
時間がきついのでここまで。