[英]C : Reading CSV text file with scanf
我正在嘗試使用scanf()從正在編寫的程序中讀取CSV文件中的一些值。 這是我目前正在做的事情:
int i, j, id, time1, time2, time3, type, value;
scanf("%d,%d,%d,%d,%d,%d", &id, &time1, &time2, &time3, &type, &value);
printf("%d", value);
例如,讓我們看看此CSV行5, 14:09:01, 1, 1013
。
scanf()
正確讀取id
和time1
,但是在那之后,我得到了一些其他變量的怪異值。 例如, value
顯示為32767
, time2
顯示為4195536
。 有人知道我在做什么錯嗎?
PS:無論如何,除了使用time1,time2和time3來獲取時間外,我還可以將其打印為字符串以避免那些額外的變量?
文件x.csv僅包含一行:
5, 14:09:01, 1, 1013
這個簡單的代碼將為您完成工作-時間將作為字符串讀入char數組。 請注意,這將讀取逗號,因此您需要擺脫它。
#include <stdio.h>
#include <string.h>
int main(void)
{
int id, type, value;
char time[100];
FILE* f = fopen("x.csv", "r");
fscanf(f, "%d, %s %d, %d", &id, time, &type, &value);
size_t len = strlen(time);
time[len-1] = '\0'; // get rid of comma
printf("%d %s %d %d\n", id, time, type, value);
fclose(f);
return 0;
}
輸出:
5 14:09:01 1 1013
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.