開發平台(Platform): (Ex: Win10, Linux, ...)
Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Code::Block 16.01
C語言
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
我的csv檔內資料是 型號 x尺寸 y尺寸 z尺寸
如果利用fscanf讀入的第一個資料型態為%s
後面所有的資料都會變成第一個字串裡的資料
餵入的資料(Input):
型號,x,y,z
F,100,100,50
#1,130,130,60
#4,172,133,60
G,135,100,60
#263,100,61,61
H,130,125,65
預期的正確結果(Expected Output):
型號、x、y、z都可以順利存入個別的變數中並輸出
F,100,100,50
#1,130,130,60
#4,172,133,60
G,135,100,60
#263,100,61,61
H,130,125,65
錯誤結果(Wrong Output):
F,100,100,50,6422260,6422264,6422268
#1,130,130,60,6422260,6422264,6422268
#4,172,133,60,6422260,6422264,6422268
G,135,100,60,6422260,6422264,6422268
#263,100,61,61,6422260,6422264,6422268
H,130,125,65,6422260,6422264,6422268
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
int main(){
char BOX_name;
int x_size, y_size, z_size;
FILE *Box01 = fopen("001.csv", "r");
if(Box01 == NULL){
perror(" File open failed: ");
exit(0);
}
else
puts("....File opened....");
printf("OK!\n");
while(!feof(Box01)) {
fscanf(Box01, " %s,%d,%d,%d", &BOX_name, &x_size, &y_size, &z_size);
printf("%s,%d,%d,%d\n", &BOX_name, &x_size, &y_size, &z_size);
}
fclose(Box01);
return 0;
}
補充說明(Supplement):
另外不懂的地方是
為什麼連輸出printf內的變數前面也要加&呢?
如果沒有加&的話就不會輸出......