找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1597|回复: 8

求助:c++与记事本交换数据

[复制链接]
发表于 2009-11-4 00:09:05 | 显示全部楼层 |阅读模式 IP:江苏扬州
记事本中的数据为,即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是在主函数中定义的变量!
发表于 2009-11-4 00:09:06 | 显示全部楼层 IP:江苏扬州
我以前写过..你自己用指针操作
回复

使用道具 举报

发表于 2009-11-4 00:09:07 | 显示全部楼层 IP:江苏扬州
#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:08 | 显示全部楼层 IP:江苏扬州
能实现吗?p向后动了,aa貌似一直都没有动过。
回复

使用道具 举报

发表于 2009-11-4 00:09:10 | 显示全部楼层 IP:江苏扬州
#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:11 | 显示全部楼层 IP:江苏扬州
学习中啦
回复

使用道具 举报

发表于 2009-11-4 00:09:12 | 显示全部楼层 IP:江苏扬州
简单方案,快又直接。经过测试


#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:14 | 显示全部楼层 IP:江苏扬州
ls编译不通过
回复

使用道具 举报

发表于 2009-11-4 00:09:15 | 显示全部楼层 IP:江苏扬州
楼上的,绝对可以编译的。我用的编译器是 vc6.0, 看图 附件: 只有本站会员才能下载或查看附件,请您 登录 或 注册
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 19:39 , Processed in 0.266200 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表