| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1303 人关注过本帖
标题:求助:c++与记事本交换数据
只看楼主 加入收藏
goodlucklj
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-3-28
收藏
 问题点数:0 回复次数:8 
求助: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是在主函数中定义的变量!
搜索更多相关主题的帖子: 记事本 数据 
2008-04-02 22:09
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我以前写过..你自己用指针操作

学习需要安静。。海盗要重新来过。。
2008-04-02 22:22
goodlucklj
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-3-28
收藏
得分:0 
#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();
}
我用指针做了一下。现将代码贴上去,供大家参考!

[[it] 本帖最后由 goodlucklj 于 2008-4-3 13:26 编辑 [/it]]
2008-04-03 11:50
VanHorn
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2008-1-8
收藏
得分:0 
能实现吗?p向后动了,aa貌似一直都没有动过。

我用VC++6我怕谁?
2008-04-03 13:16
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#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]);
  
}
}
以前写的..没怎么改

学习需要安静。。海盗要重新来过。。
2008-04-03 13:49
chen_zixi
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2008-3-17
收藏
得分:0 
学习中啦
2008-04-06 12:55
freedomz
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-4-7
收藏
得分:0 
我的方案
简单方案,快又直接。经过测试


#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;
}
2008-04-07 15:38
wfjt
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2007-11-30
收藏
得分:0 
ls编译不通过
2008-04-08 09:02
freedomz
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-4-7
收藏
得分:0 
楼上的,绝对可以编译的。我用的编译器是 vc6.0, 看图

compiledsuccess.JPG (107.48 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2008-04-09 09:18
快速回复:求助:c++与记事本交换数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023743 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved