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条)

报告相同问题?

悬赏问题

  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题