我有格式的CSV文件:C程序來解析文件
name,num-one,num-two,num-three
我有我使用(如下圖)解析腳本,但我想編輯的腳本來檢查整個文件繼續前進。腳本的
僞代碼:
Read through the whole file/
Find a line where token 1 matches a set value AND
Token two matches another set value THEN
Set the value two tokens as new variables
Otherwise move onto the next line.
如果令牌酮(name
)和令牌兩(num-one
)等於當前正由我的程序處理中的值,然後設置令牌三個和四個爲value1
和value2
。
char line[32];
int count;
FILE *read_file;
read_file = fopen ("/location/of/file.csv", "r");
fgets (line,32,read_file);
pch = strtok (line,",");
while (pch != NULL )
{
if (count == 1)
{
if ((strcmp(pch,name) == 0))
{
count++;
}
}
else if (count == 2)
{
if ((strcmp(pch,num-one) == 0))
{
count++;
}
}
else if (count == 3)
{
value1 = atoi(pch);
count++;
}
else if (count == 4)
{
value2 = atoi(pch);
count = 1;
}
pch = strtok (NULL, ",");
}
我認爲你的意思是'\ n'並且錯誤地轉義了錯誤 – ajay
這段代碼中的'== 4'做了什麼? –
@DustinCook sscanf()調用返回成功轉換的次數;'if'將該值與'4'進行比較,看看是否所有四次轉換都是成功的,在依賴具有明確定義的值的變量之前,這是必須的 – unwind