0
我有具有以下數據的CSV
數據文件:Ç解析逗號分隔值與換行符
H1,H2,H3
a,"b
c
d",e
當我通過Excel作爲CSV文件打開,所以能夠顯示與片材列標題爲H1, H2, H3
和列值:a for H1
,
multi line value as
b
c
d
for H2
和c for H3
我需要解析使用C程序文件,並有值拿起這個樣子。 但是,我下面的代碼將無法正常工作,因爲我具備多線值的列:
char buff[200];
char tokens[10][30];
fgets(buff, 200, stdin);
char *ptok = buff; // for iterating
char *pch;
int i = 0;
while ((pch = strchr(ptok, ',')) != NULL) {
*pch = 0;
strcpy(tokens[i++], ptok);
ptok = pch+1;
}
strcpy(tokens[i++], ptok);
如何修改這個代碼片段,以適應列多行值? 請不要被字符串緩衝區的硬編碼值所困擾,這是POC的測試代碼。 而不是任何第三方圖書館,我想從第一原則的艱難的方式做到這一點。 請幫忙。
解析一個CSV文件*看起來很簡單,因爲有很多角落和特殊情況很難記住。或者很難處理。例如,如果多行字符串包含逗號?嘗試找到一個能替你處理的庫。 –
對於初學者來說,你應該看看如何讓你的代碼可以多行讀取,並且使用'buff'是任意大小而不是限制爲199個字符。 –
請不要被字符串緩衝區的硬編碼值所困擾,這是POC的測試代碼。而不是任何第三方庫,我想從第一個原則難以實現 –