xjgcyq1 2017-06-05 14:15 采纳率: 100%
浏览 1373
已采纳

c语言的转换改成在c++,要怎样改,求代码

#include
#include
int main()
{
int g[1000];//开一个足够大的数组。
int i99 = 0;
int na;
FILE *fp;//文件指针
fp = fopen("d:\a.txt", "r");//以文本方式打开文件。
if(fp == NULL) //打开文件出错。
return -1;
while(fscanf(fp, "%d,", &g[i99]) != EOF) //读取数据到数组,直到文件结尾(返回EOF)
i99++;
fclose(fp);//关闭文件
for( na= 0;na < i99; na ++)//循环输出数组元素。
{
printf("%d ", g[na]);
}
printf("\n");
printf("na=%d\n ", na);
return 0;
}

a.txt
16,12,13,15,14,
17,12,12,13,14,
18,12,13,1,1,

  • 写回答

6条回答 默认 最新

  • 战在春秋 2017-06-06 02:36
    关注

    并不是特别简单,**难点在于数据文件中各数之间有逗号**。

    代码如下:

    #include <iostream>
    #include <fstream>
    #include <sstream>
    #include <vector>
    using namespace std;
    
    void readCSV(istream &input, vector< vector<string> > &output)
    {
        string csvLine;
    
        //逐行读取数据文件
        while (getline(input, csvLine))
        {
            istringstream csvStream(csvLine);
            vector<string> csvColumn;
            string csvElement;
    
            //以逗号作为分隔符处理每行
            while (getline(csvStream, csvElement, ','))
            {
                csvColumn.push_back(csvElement);
            }
            output.push_back(csvColumn); 
        }
    }
    
    int main()
    {
        ofstream myfile;
        int a;
        fstream file("d://a.txt", ios::in);
        if (!file.is_open())
        {
            cout << "File not found!\n";
            return 1;
        }
        // 使用typedef简化写法
        typedef vector< vector<string> > csvVector;
        csvVector csvData;
    
        readCSV(file, csvData);
    
        // 打印结果
        for (csvVector::iterator i = csvData.begin(); i != csvData.end(); ++i)
        {
            for (vector<string>::iterator j = i->begin(); j != i->end(); ++j)
            {
                a = stoi(*j); //转换为整数
                cout << a << " ";
            }
            cout << "\n";
        }
    }
    

    说明:
    1 从头文件到函数,都是标准C++库 (std)的内容,涵盖了C++基本的文件操作、输入输出,向量容器等知识点,
    不论是完成作业还是自学,都是比较好的例子。
    2 程序上机测试通过,其结果如下,输出的格式您可以根据需要调整。

    图片说明

    用心回答每个问题,如果有帮助,请采纳答案好吗,谢谢~~~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?