关于C语言文件读取和处理的问题,如何按行读取文件,挨个转换成double型数据,存入数组?
intmain(){FILE*fp;charbuffer[50];charfilename[50];inti;intj=0;charc;doublec_number[50...
int main()
{
FILE *fp;
char buffer[50];
char filename[50];
int i;
int j = 0;
char c;
double c_number[50];
printf("Input file name: ");
scanf("%s", filename);
if((fp = fopen(filename, "rb")) == NULL)
{
return -1;
}
while(fgets(buffer, 50, fp))
{
for(i = 0; i < 50; i++)
{
c = buffer[i];
if(c != ' ' && c != '\n' && c != '\r')
{
c_number[j] = (double)atof(c); //这里我想挨个转换成double类型
//sscanf(c, "%lf", c_number[j]); 这里我try了下sscanf必须字符串
j++;
}
Add(c_number[j]); //我的方法需要传入double类型的参数
}
}
fclose(fp);
---------------------------------------------------------------------------------------------------
15.0,69.9,6.5,22.4,28.4,65.9,19.4,198.7,38.8,138.2
160,591,114,229,230,270,128,1657,624,1503
//这是我的输入table,看着挺简单,上手真不会读了。
-------------------------------------------------------------------------------------------------------
Add(c_number[j]); //我的方法需要传入double类型的参数
我有个方法调用,需要从文件中拿到数字,而文件中存在浮点数。
又不是特别熟悉C语言,现在TABLE表是一行为一组数据要处理,并且行的内容会很大
怎么读取到每行数据里的数字,在传入到我调用的方法,是我现在的问题 展开
{
FILE *fp;
char buffer[50];
char filename[50];
int i;
int j = 0;
char c;
double c_number[50];
printf("Input file name: ");
scanf("%s", filename);
if((fp = fopen(filename, "rb")) == NULL)
{
return -1;
}
while(fgets(buffer, 50, fp))
{
for(i = 0; i < 50; i++)
{
c = buffer[i];
if(c != ' ' && c != '\n' && c != '\r')
{
c_number[j] = (double)atof(c); //这里我想挨个转换成double类型
//sscanf(c, "%lf", c_number[j]); 这里我try了下sscanf必须字符串
j++;
}
Add(c_number[j]); //我的方法需要传入double类型的参数
}
}
fclose(fp);
---------------------------------------------------------------------------------------------------
15.0,69.9,6.5,22.4,28.4,65.9,19.4,198.7,38.8,138.2
160,591,114,229,230,270,128,1657,624,1503
//这是我的输入table,看着挺简单,上手真不会读了。
-------------------------------------------------------------------------------------------------------
Add(c_number[j]); //我的方法需要传入double类型的参数
我有个方法调用,需要从文件中拿到数字,而文件中存在浮点数。
又不是特别熟悉C语言,现在TABLE表是一行为一组数据要处理,并且行的内容会很大
怎么读取到每行数据里的数字,在传入到我调用的方法,是我现在的问题 展开
展开全部
如果数据不是很大的话,应该和数组类型没什么关系,因为你是要保存到数据中处理。 Matlab的save命令有保存为txt格式的选项: save data.dat var -ascii 不过这样得到的数据文件输出顺序你要自己判断一下是行优先还是列优...
追问
Add(c_number[j]); //我的方法需要传入double类型的参数
我有个方法调用,需要从文件中拿到数字,而文件中存在浮点数。
又不是特别熟悉C语言,现在TABLE表是一行为一组数据要处理,并且行的内容会很大
怎么读取到每行数据里的数字,在传入到我调用的方法,是我现在的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询