新微赢技术网
标题:
求助:c++与记事本交换数据
[打印本页]
作者:
√wo
时间:
2009-11-4 00:09
标题:
求助:c++与记事本交换数据
记事本中的数据为,即3行4列的矩阵:
0.101,2.304,3.555,1.183,
-1.347,3.712,4.623,2.137,
-2.835,1.072,5.643,3.035;
如何将其读到C++中的C[3][4]的矩阵中?
说明:C是在主函数中定义的变量!
作者:
依ing梦
时间:
2009-11-4 00:09
我以前写过..你自己用指针操作
作者:
Nick
时间:
2009-11-4 00:09
#include "iostream.h"
#include "fstream.h"
#include "iomanip.h"
#include "stdio.h"
void main(){
double *p,c[3][4];
int i,j;
p=c[0];
ifstream aa;
aa.open("D:\\test.txt",ios::in);//将数据用记事本保存,放在d盘.文件名为test.txt
if(!aa)
{
cout <<"test.txt不能打开!\n";
aa.close();
}
while(!aa.eof())
{
aa>>*p;
p++;
}
aa.close();
for(i=0;i<3;i++)
for( j=0;j<4;j++)
{
cout<<"c["<<i<<"]["<<j<<"]="<<c[i][j]<<setprecision(4)<<setw(8);
if(j==3)
cout<<endl;
}
getchar();
}
我用指针做了一下。现将代码贴上去,供大家参考!
作者:
踏破^ō^凌云
时间:
2009-11-4 00:09
能实现吗?p向后动了,aa貌似一直都没有动过。
作者:
追风少年
时间:
2009-11-4 00:09
#include<stdio.h>
#include<math.h>
#include<string>
using namespace std;
void main()
{
double x[420]={0};
string s;
FILE *fp;
fp=fopen("eight.gjc","r");
int i=0;
char ch;
ch=fgetc(fp);
while(ch!=EOF)
{
if((ch>='0'&&ch<='9')||ch=='.'||ch=='-')
{
s=s+ch;
}
else if(!(ch>='0'&&ch<='9'||ch=='.'||ch=='-')&&s!="\0")
{
int n=s.find(".",0);
int f=0;
float d=0;
const char *p=s.c_str();
for(int k=0;k<s.length();k++)
{
if(p[k]=='-') continue;
if(p[k]!='.'&&p[k]!=' '&&f==0)
{
d=d+(p[k]-'0')*pow(10,n-k-1);
}
if(f==1&&p[k]!='.'&&p[k]!=' ')
{
d=d+(p[k]-'0')*pow(10,n-k);
}
if(p[k]=='.') f=1;
}
if(p[0]=='-')
x[i++]=-1*d;
else
x[i++]=d;
s="\0";
}
ch=fgetc(fp);
}
for(int j=0;j<i;j++)
{
if(j!=0&&j%3==0)
printf("\n");
printf("%f\t",x[j]);
}
}
以前写的..没怎么改
作者:
夜流冰
时间:
2009-11-4 00:09
学习中啦
作者:
晒月亮的蜻蜓
时间:
2009-11-4 00:09
简单方案,快又直接。经过测试
#include <iostream.h>
#include <fstream.h>
//假设你的数据都存在data.txt里面而且格式如下
//data.txt
//
//0.101,2.304,3.555,1.183,
//-1.347,3.712,4.623,2.137,
//-2.835,1.072,5.643,3.035
int main(){
float c[3][4];
char dummy;
ifstream readfile;
readfile.open("data.txt");
//读入
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
readfile>>c[i][j];//读入数字
readfile>>dummy;//去掉逗号
}
}
//输出到屏幕
for(i=0;i<3;i++){
for(int j=0;j<4;j++){
cout<<c[i][j]<<",";
}
cout<<endl;
}
return 0;
}
作者:
═━灆涩━═
时间:
2009-11-4 00:09
ls编译不通过
作者:
藍麥可兒
时间:
2009-11-4 00:09
楼上的,绝对可以编译的。我用的编译器是 vc6.0, 看图 附件: 只有本站会员才能下载或查看附件,请您 登录 或 注册
欢迎光临 新微赢技术网 (http://bbs.weiying.cn/)
Powered by Discuz! X3.2