C++ 读取.csv文件内容并且储存到二维数组里面,文件内容如下类型: 10
a,b,c,d1,2,3,47,4,3,1数值是有意义的不能变为string类型,求大神解答,贴出代码最好加上注释,谢谢啊...
a,b,c,d
1,2,3,4
7,4,3,1
数值是有意义的不能变为string类型,求大神解答,贴出代码最好加上注释,谢谢啊 展开
1,2,3,4
7,4,3,1
数值是有意义的不能变为string类型,求大神解答,贴出代码最好加上注释,谢谢啊 展开
1个回答
展开全部
假定数据存放在 a.csv 中,每行 列数 都是 4 列,行尾 有 换行 符。行数不定,读到 EOF 为止。
按目前例子来看,它们是16 进制 正整数,逗号分隔,所以用有格式读:
fscanf(fp,"%x,%x,%x,%x",&x[n][0],&x[n][1],&x[n][2],&x[n][3]);
便可。完整的 c++程序如下。
#include<iostream>
#include<fstream>
#include <string>
using namespace std;
#include <stdio.h>
main(){
int x[100][4];
int j,i,n=0;
FILE *fp;
fp=fopen("a.csv","r");
while(1){
fscanf(fp,"%x,%x,%x,%x",&x[n][0],&x[n][1],&x[n][2],&x[n][3]);
if (feof(fp))break;
n++;
}
fclose(fp);
printf("n=%d\n",n);
for (j=0;j<n;j++){
for (i=0;i<4;i++) printf("%x ",x[j][i]);
printf("\n");
}
return 0;
}
输出:
n=3
a b c d
1 2 3 4
7 4 3 1
按目前例子来看,它们是16 进制 正整数,逗号分隔,所以用有格式读:
fscanf(fp,"%x,%x,%x,%x",&x[n][0],&x[n][1],&x[n][2],&x[n][3]);
便可。完整的 c++程序如下。
#include<iostream>
#include<fstream>
#include <string>
using namespace std;
#include <stdio.h>
main(){
int x[100][4];
int j,i,n=0;
FILE *fp;
fp=fopen("a.csv","r");
while(1){
fscanf(fp,"%x,%x,%x,%x",&x[n][0],&x[n][1],&x[n][2],&x[n][3]);
if (feof(fp))break;
n++;
}
fclose(fp);
printf("n=%d\n",n);
for (j=0;j<n;j++){
for (i=0;i<4;i++) printf("%x ",x[j][i]);
printf("\n");
}
return 0;
}
输出:
n=3
a b c d
1 2 3 4
7 4 3 1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |