2 py15516931259 py15516931259 于 2016.04.23 11:22 提问

c++从一两列文件按列读取数据到两一维数组中

数据如下:
0.00 882.197
8.35 877.375
15.66 871.794
27.24 864.176
37.27 855.956
41.28 852.139
43.72 848.769
55.84 838.139
71.62 825.459
82.78 820.639
98.28 817.389
109.84 817.409
125.86 817.949
136.84 817.469
152.48 817.829
163.08 816.759
179.03 815.589
191.22 814.779
206.42 810.829
218.68 809.769
234.01 809.919
245.20 816.699
261.88 817.219
272.39 829.269
288.68 840.729
308.09 852.139
328.05 866.150
342.80 878.883
354.90 885.711
363.64 890.659
372.71 893.685

2个回答

qq423399099
qq423399099   Ds   Rxr 2016.04.23 11:51
已采纳

用ifstream和sscanf来实现

#include <iostream>
#include <fstream>  
using namespace std;
int main()
{
    float arr1[64];
    float arr2[64];
    int i = 0;
    ifstream myfile("F:\\test.txt");
    if(!myfile){  
        cout << "Unable to open myfile";  
        exit(1); // terminate with error  
    }  
    else
    {
        char str[64] = {0};
        while (!myfile.eof())
        {
            myfile.getline (str, 64); //读取一行数据
            sscanf(str, "%f %f", &arr1[i], &arr2[i]);
            i++;
        }
    }
    //打印两个一维数组
    for(int j = 0; j < i; j++)
        cout << arr1[j] << " " << arr2[j] << endl;
}

图片说明

py15516931259
py15516931259   2016.04.23 12:24

谢谢,但是我运行为什么会出现图片说明

py15516931259
py15516931259 我傻了,i就是,没注意!!!!!!!!!!
一年多之前 回复
py15516931259
py15516931259 还要麻烦一下,程序还要统计文件行数并输出,要怎么添加程序呢?
一年多之前 回复
py15516931259
py15516931259 谢谢,已解决!!!
一年多之前 回复
qq423399099
qq423399099 你的数据可能最后有一个空行
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!