文本内容不一定是规则的,文章代码主要提供一种思路:从一个含有不同数据类型的txt文本内容提取所需要的数字。
txt文本内容:
[4235.2785, 4125.2235;
4245.2235, 4225.2365;
4255.2901, 4325.2438;
4265.2235, 4525.2565;
4275.2576, 4725.2235]
代码实现 :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#pragma warning(disable:4996)
int main()
{
FILE* fp;
char str[200];
char str2[200];
double a[1000];
int x = 0;
char ch;
fp = fopen("test.txt", "r");
if (fp == NULL)
{
printf("打开文件失败\n");
return 0;
}
while (!feof(fp))
{
int j = 0;
fgets(str, 200, fp); //按行读取txt
//对读取的行进行筛选,并将有用信息赋值给str2数组
for (int i = 0; i < strlen(str); i++)
{
if (str[i] != '[')
{
if (str[i] == ',')
{
break;
}
str2[j] = str[i];
j++;
}
str2[j] = '\0'; //结束符
}
sscanf(str2, "%lf", &a[x]); //将(数字)字符串转换为 double类型
x++;
}
//遍历打印最后的结果
for (int y = 0; y < x; y++)
{
printf("%lf,", a[y]);
}
fclose(fp);
return 0;
}
运行结果:
4235.2785, 4245.2235, 4255.2901, 4265.2235, 4275.2576,
代码一塌糊涂