表題のとおりなのですが……
[code]
#include <stdio.h>
int main(void)
{
FILE *fp;
char *fname = "db1.csv";
char hinban[100],name[100],category[100];
int ret, price;
float f1, f2;
fp = fopen( fname, "r" );
if( fp == NULL ){
printf( "%sファイルが開けません\n", fname );
return -1;
}
while( ( ret = fscanf( fp, "%[^,],%[^,],%d,%s", hinban, name, &price, category ) ) != EOF ){
printf( "**********\n品番 : %s\n品名 : %s\n価格 : %d\n種類 : %s\n", hinban, name, price, category );
}
printf("\n");
fclose( fp );
return 0;
}
--------------------------------------------------------------------
PC001,Laptop,70000,PC
PC002,Desktop,120000,PC
PC003,Workstation,300000,PC
AC001,Keyboard,2000,ACCESSORY
AC002,Mouse,1500,ACCESSORY
--------------------------------------------------------------------
というCSVを読み取らせたところ
--------------------------------------------------------------------
**********
品番 : PC001
品名 : Laptop
価格 : 70000
種類 : PC
**********
品番 :
PC002
品名 : Desktop
価格 : 120000
種類 : PC
**********
品番 :
PC003
品名 : Workstation
価格 : 300000
種類 : PC
**********
品番 :
AC001
品名 : Keyboard
価格 : 2000
種類 : ACCESSORY
**********
品番 :
AC002
品名 : Mouse
価格 : 1500
種類 : ACCESSORY
**********
品番 :
品名 : Mouse
価格 : 1500
種類 : ACCESSORY
--------------------------------------------------------------------
という出力となってしまいます.
最初の出力のように改行を挟まずに5個表示させたいのですが,どうもうまく行きません.
おそらく制御文字が悪さしているというところまではわかったのですが,対処法がわからないので,申し訳ないのですが,どなたかご教授お願いします.
環境はWindows・Mac両方試しました(それぞれの端末でcsvを作りなおしました)
コンパイラはgccでWindowsは4.8.1,Macは4.2.1です.