首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么从txt中读取数据并把取出来的值分别赋给两个数组

2013-06-26 
如何从txt中读取数据并把取出来的值分别赋给两个数组?记事本中的内容如图所示。我想分别取出CHA CHB下面的

如何从txt中读取数据并把取出来的值分别赋给两个数组?
怎么从txt中读取数据并把取出来的值分别赋给两个数组
记事本中的内容如图所示。我想分别取出CHA CHB下面的数值并分别付给数组double a[10],b[10],实现效果为
a[10]={0.04204 ,0.04156, 0.04126, 0.04116 ,0.04165, 0.04068, 0.04038, 0.04048, 0.04087, 0.04077}
b{10}={-0.02437, -0.02486, -0.02573, -0.02446, -0.02495, -0.02544, -0.02515 ,-0.02583 ,-0.02612, -0.02554}
请问我该如何写代码?新手上路 请多指教,谢谢。 文件读写 数组
[解决办法]


#include <fstream>
#include <string>

bool read_array(const char* mk, std::istream& istr, double data[10])
{
std::string mark;

while(std::getline(istr, mark))
{
if(mark.find(mk) != std::string::npos && 
mark.find("begin") != std::string::npos)
break;
}

for(int i = 0; i < 10; ++i)
istr >> data[i];

return !!istr;
}

int main()
{
double a[10], b[10];

std::ifstream ifs("data1.txt");
read_array("CHA", ifs, a);
read_array("CHB", ifs, b);
}

[解决办法]

#include <stdio.h>
#include <string.h>

void Read(double a[], FILE *fp){
char str[30];
while(fgets(str, 30, fp) && !strstr(str, "-->"));
for(int i = 0; i < 10; ++i) fscanf(fp, "%lf", a + i);
while(fgets(str, 30, fp) && !strstr(str, "<--"));
}

int main(){
FILE *fp = fopen("data1.txt", "r");
double a[10], b[10];
Read(a, fp);
Read(b, fp);
for(int i = 0; i < 10; ++i) printf("%.5lf\n", a[i]);
for(int i = 0; i < 10; ++i) printf("%.5lf\n", b[i]);
fclose(fp);
return 0;
}

热点排行