#include <stdio.h>
#include <string.h>
// 这里设置输入文件的路径
#define INPUT_FILE_PATH "input.txt"
// 这里设置输出文件的路径
#define OUTPUT_FILE_PATH "output.txt"
// 一行的最大长度,如果文件长度超过了,设置更大的值
#define MAX_LINE_SIZE 4000
// 一行中的数据的分隔符号。从图片中看,应该是英文的逗号,而不是中文的逗号的。
// 你可以确认一下,然后修改一下下面的常量。
#define SEPERATOR ","
void readData(FILE *input, FILE *output)
{
char buffer[MAX_LINE_SIZE];
// 跳过第一行(第一行是每列的名字)
fgets(buffer, MAX_LINE_SIZE, input);
while(NULL != fgets(buffer, MAX_LINE_SIZE, input))
{ /* 开始按行读入数据。每行中的数据,以 SEPERATOR 分隔。
源文件中每行有 7 列数据:
0 1 2 3 4 5 6
车牌号 时间 经度 纬度 状态 速度 方向
现在需要的是第 2,3 列的数据。
*/
// 跳过第 0 列
strtok(buffer, SEPERATOR);
// 跳过第 1 列
strtok(NULL, SEPERATOR);
// 读取第 2 列的数据,并写到输出文件
fprintf(output, "%s", strtok(NULL, SEPERATOR));
// 读取第 3 列的数据,并写到输出文件
fprintf(output, " %s\n", strtok(NULL, SEPERATOR));
}
}
int main(int argc, char *argv[])
{
FILE *input = fopen(INPUT_FILE_PATH, "r");
FILE *output = fopen(OUTPUT_FILE_PATH, "w");
if(NULL == input)
printf("打开输入文件:%s 失败!\n", INPUT_FILE_PATH);
else if(NULL == output)
printf("打开输出文件:%s 失败!\n", OUTPUT_FILE_PATH);
else
{
readData(input, output);
printf("操作完成!\n");
fclose(input);
fclose(output);
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考