如何从C程序中读取.txt文件或.csv文件?
哪个C函数适合于读取操作?实际上,我的.txt或.csv文件有一个固定模式,如下所示:如何从C程序中读取.txt文件或.csv文件?,c,C,哪个C函数适合于读取操作?实际上,我的.txt或.csv文件有一个固定模式,如下所示: Temperature = 35 Pressure Segment 1 Slope = 5.5 Offset = 10 Temperature = 100 Pressure Segment 1 Slope = 53 Offset = 12 Temperature = 150 Pressure Segment 1 Slope = 1 Offset = 12 此外,哪个文件.txt或.csv易于从C程序中读
Temperature = 35
Pressure Segment 1
Slope = 5.5
Offset = 10
Temperature = 100
Pressure Segment 1
Slope = 53
Offset = 12
Temperature = 150
Pressure Segment 1
Slope = 1
Offset = 12
此外,哪个文件.txt或.csv易于从C程序中读取?最简单(但也是最不灵活的,并且存在一些缺陷的是使用scanf):
您是指CSV(逗号分隔值)文件吗?可能与@N 1.1重复:此链接很难理解。请帮帮我!请看这里:注意,当查看问题进行编辑时,数据似乎被分成了四行-当给出此答案时,现在显示的每套四行数据似乎都在一行上。@Jonathan:谢谢,“编辑”版本已过时。
#include <stdio.h>
struct Record {
int temperature;
unsigned int pressure_segment;
double slope;
int offset;
};
int readRecord(FILE* f, Record* rec) {
if (fscanf(f,
"Temperature = %i Pressure Segment %u Slope = %lf Offset = %i\n",
&rec->temperature,
&rec->pressure_segment,
&rec->slope,
&rec->offset) == 4) {
return 0;
} else {
return -1;
}
}
Record rec;
FILE* f = fopen("your-file-name", "r");
while (!feof(f)) {
if (readRecord(f, &rec) == 0) {
printf("record: t: %i p: %u s: %lf o: %u\n",
rec.temperature,
rec.pressure_segment,
rec.slope,
rec.offset);
}
}
fclose(f);
int readRecord(FILE* f, Record* rec) {
if (fscanf(f,
"Temperature = %i\nPressure Segment %u\nSlope = %lf\nOffset = %i\n",
&rec->temperature,
&rec->pressure_segment,
&rec->slope,
&rec->offset) == 4) {
return 0;
} else {
return -1;
}
}