24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2168  |  回复: 20

mljphy

铁虫 (正式写手)

[求助] 一下的数据如何通过C++读取

数据文件例子:test.txt
Frame
3.0   12.0  20.0
1.0    7.0  7.0
15.0  21.0  4.0
Frame
2.0   2.0    15.0
1.0   12.0   3.0
11.0  2.0   23.0
Frame
2.0   21.0   15.0
11.0  12.0   13.0
11.0   2.0   23.0

例子中共有k(k=3)组数据,每组数据n行(n=3),m列(n=3)。

想把它读入a1[k][n],a2[k][n],a3[k][n]数组中,用二维数组保存,要求数组第一个下标对应的是组数k,而第二个下标对应的是行数n,数组名已经区分了列数(实际中代表不同类型的数据,所以用不同数组明区分,后面好进行处理),这里是3列所有用了三个数组a1,a2,a3。
多谢高手指点。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

一切都会慢慢好起来。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhanglinfeng

新虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
大致的考虑了下 , 你可以用文件流来读取数据,定义三个数组用来存储数据,至于代码要等我测试了在给你!
2楼2013-06-02 18:54:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhanglinfeng

新虫 (小有名气)

【答案】应助回帖


xzhdty: 金币+1, 谢谢参与 2013-06-02 20:49:07
#include<iostream>
#include<fstream>
using std::cout ;

int main()
{
  const char *filename  = "test.txt 所在的绝对路径" ;
  std::ifstream is(filename ) ;
  double a1[3][3] = {0} ;
  double a2[3][3] = {0} ;
  double a3[3][3]  = {0} ;
    for (int k = 0 ; k != 3 ; ++k)
     for (int n = 0 ; n != 3 ; ++n)
   {
      //is >> data ;
       switch(n)
       {
          case 0 :
              is >> a1[k][n] >> a2[k][n] >> a3[k][n];
               break ;
         case 1 :
              is >> a1[k][n] >> a2[k][n] >> a3[k][n]  ;
               break ;
        case 2 :
               is >> a1[k][n] >> a2[k][n] >> a3[k][n]  ;
                 break ;
        }
     }
for (int k = 0 ; k != 3 ; ++k)  //为了测试正确性
35     for (int n = 0 ; n != 3 ; ++n)
36     {
37        cout << a1[k][n] << "\t" << a2[k][n] << "\t" << a3[k][n] << std::endl     ;
38     }

return 0 ;
}
3楼2013-06-02 20:25:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mljphy

铁虫 (正式写手)

引用回帖:
3楼: Originally posted by zhanglinfeng at 2013-06-02 20:25:07
#include<iostream>
#include<fstream>
using std::cout ;

int main()
{
  const char *filename  = "test.txt 所在的绝对路径" ;
  std::ifstream is(filename ) ;
  double a1 =  ...

首先谢谢你的热心帮助。
我测试了一下代码,似乎不对,好像没有读入,所有数据都还是零。
一切都会慢慢好起来。
4楼2013-06-02 21:14:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhanglinfeng

新虫 (小有名气)

【答案】应助回帖

怎么会了?你把你的代码贴出来看看!
5楼2013-06-02 21:26:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mljphy

铁虫 (正式写手)

引用回帖:
5楼: Originally posted by zhanglinfeng at 2013-06-02 21:26:58
怎么会了?你把你的代码贴出来看看!

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

using namespace std;
using std::cout ;

int main()
{
  const char *filename  = "G:cpp/test.txt" ;
  std::ifstream is(filename) ;
  double a1[3][3] = {0} ;
  double a2[3][3] = {0} ;
  double a3[3][3]  = {0} ;

  for (int k = 0 ; k != 3 ; k++)
  for (int n = 0 ; n != 3 ; n++)
   {
      //is >> data ;
       switch(n)
       {
          case 0 :
              is >> a1[k][n] >> a2[k][n] >> a3[k][n];
               break ;
         case 1 :
              is >> a1[k][n] >> a2[k][n] >> a3[k][n]  ;
               break ;
        case 2 :
               is >> a1[k][n] >> a2[k][n] >> a3[k][n]  ;
               break ;
        }
     }
for (int k1 = 0 ; k1 !=3 ; k++)  //为了测试正确性
for (int n = 0 ; n != 3 ; n++)
{
    cout << a1[k1][n] << "\t" << a2[k1][n] << "\t" << a3[k1][n] << std::endl     ;
}

return 0 ;

}

我的用的代码。
我用VC 6.0.
一切都会慢慢好起来。
6楼2013-06-02 21:37:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhanglinfeng

新虫 (小有名气)

【答案】应助回帖

你的filename不应该这么写吧?windows里面至少应该是双斜杠吧?这个不能通过编译,文件的绝对路径要写对。我电脑上测试是对的
7楼2013-06-02 22:27:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mljphy

铁虫 (正式写手)

引用回帖:
7楼: Originally posted by zhanglinfeng at 2013-06-02 22:27:40
你的filename不应该这么写吧?windows里面至少应该是双斜杠吧?这个不能通过编译,文件的绝对路径要写对。我电脑上测试是对的

实际上这个问题我也考虑了,多次改过
  const char *filename="E:\\Mycodes\\CPP\\test.txt" ;
这种方式至少能编译成功。但输出的结果却不对。所有数据都为零,好像没有读入一样。

代码如下:
#include<iostream>
#include<fstream>
#include<string>
#include <stdio.h>

using namespace std;
using std::cout ;

int main()
{
  const char *filename="E:\\Mycodes\\CPP\\test.txt" ;
  std::ifstream is(filename) ;
  double a1[3][3] = {0} ;
  double a2[3][3] = {0} ;
  double a3[3][3]  = {0} ;

  for (int k = 0 ; k != 3 ; ++k)
  for (int n = 0 ; n != 3 ; ++n)
   {
      //is >> data ;
       switch(n)
       {
          case 0 :
              is >> a1[k][n] >> a2[k][n] >> a3[k][n];

               break ;
         case 1 :
              is >> a1[k][n] >> a2[k][n] >> a3[k][n]  ;

               break ;
        case 2 :
               is >> a1[k][n] >> a2[k][n] >> a3[k][n]  ;
               break ;
        }
     }

  for (int k1 = 0 ; k1 !=3 ; ++k1)  //为了测试正确性
for (int n1 = 0 ; n1 != 3 ; ++n1)
{
    cout << a1[k1][n1] << "\t" << a2[k1][n1] << "\t" << a3[k1][n1] << std::endl     ;
}

return 0 ;

}
一切都会慢慢好起来。
8楼2013-06-03 00:49:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhanglinfeng

新虫 (小有名气)

【答案】应助回帖

首先你那个文件里必须有你的数据,其次中间的那句using std::cout 可以不用要了,已经有std命名空间了
其余的和我写的一样,应该没问题,你在试试。
9楼2013-06-03 08:06:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mljphy

铁虫 (正式写手)

引用回帖:
9楼: Originally posted by zhanglinfeng at 2013-06-03 08:06:02
首先你那个文件里必须有你的数据,其次中间的那句using std::cout 可以不用要了,已经有std命名空间了
其余的和我写的一样,应该没问题,你在试试。

还是不行,各种方法都用过了。我发现*filename 根本就没有只想所需要的文件,各种方式都试过了,总是没有读文件一样。
一切都会慢慢好起来。
10楼2013-06-03 10:30:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 mljphy 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 359求调剂 +4 王了个楠 2026-03-25 4/200 2026-03-27 08:43 by 不吃魚的貓
[考研] 材料求调剂 +6 @taotao 2026-03-21 6/300 2026-03-27 08:26 by hypershenger
[考研] 材料调剂 +8 匹克i 2026-03-23 8/400 2026-03-27 08:11 by hypershenger
[考研] 325求调剂 +5 李嘉图·S·路 2026-03-23 5/250 2026-03-27 00:42 by wxiongid
[考研] 351求调剂 +4 麦克阿磊 2026-03-24 4/200 2026-03-27 00:32 by wxiongid
[考研] 求调剂 +5 芦lty 2026-03-25 6/300 2026-03-26 20:49 by 不吃魚的貓
[考研] 【双一流院校新能源、环境材料,材料加工与模拟招收大量调剂】 +4 Higraduate 2026-03-22 8/400 2026-03-26 20:34 by Higraduate
[考研] 求调剂 +8 Auroracx 2026-03-22 8/400 2026-03-26 19:55 by 不吃魚的貓
[考研] 275求调剂 +9 Micky11223 2026-03-25 11/550 2026-03-26 15:54 by 不吃魚的貓
[考研] 一志愿南航 335分 | 0856材料化工 | GPA 4.07 | 有科研经历 +6 cccchenso 2026-03-23 6/300 2026-03-25 22:25 by 544594351
[考研] 311求调剂 +4 勇敢的小吴 2026-03-20 4/200 2026-03-25 18:12 by xcjcqu
[考研] 网络空间安全0839招调剂 +4 w320357296 2026-03-25 6/300 2026-03-25 17:59 by 255671
[考研] 289材料与化工(085600)B区求调剂 +4 这么名字咋样 2026-03-22 5/250 2026-03-25 08:20 by mx.yue
[考研] 上海电力大学材料防护与新材料重点实验室招收调剂研究生(材料、化学、电化学,环境) +4 我爱学电池 2026-03-23 4/200 2026-03-25 00:59 by 1027_324
[考研] 070300化学求调剂 +9 苑豆豆 2026-03-20 9/450 2026-03-24 17:15 by licg0208
[考研] 085404电子信息284分求调剂 +4 13659058978 2026-03-24 4/200 2026-03-24 12:15 by syl20081243
[考博] 26申博自荐 +3 whh869393 2026-03-24 3/150 2026-03-24 09:55 by 21018060
[考研] 070300,一志愿北航320求调剂 +3 Jerry0216 2026-03-22 5/250 2026-03-23 09:16 by 。。堂堂
[考研] 308求调剂 +3 墨墨漠 2026-03-21 3/150 2026-03-22 16:54 by i_cooler
[考研] 一志愿华中科技大学071000,求调剂 +4 沿岸有贝壳6 2026-03-21 4/200 2026-03-22 07:21 by ilovexiaobin
信息提示
请填处理意见