如何用C/C++把csv中的内容读到一个数组里?
csv是形如这样的:abs402541228asd213452342...1000行,10列舍弃第1列字符串不要,读取剩余的到一个a[1000][9]的二维数组中,值取整...
csv是形如这样的:
abs 4 0 2 5 4 1 2 2 8
asd 2 1 3 4 5 2 3 4 2
...
1000行,10列
舍弃第1列字符串不要,读取剩余的到一个a[1000][9]的二维数组中,值取整形,用C/C++怎么做啊?
帮我写个完整的直接可运行的程序(带宏和头文件的),谢谢啦 展开
abs 4 0 2 5 4 1 2 2 8
asd 2 1 3 4 5 2 3 4 2
...
1000行,10列
舍弃第1列字符串不要,读取剩余的到一个a[1000][9]的二维数组中,值取整形,用C/C++怎么做啊?
帮我写个完整的直接可运行的程序(带宏和头文件的),谢谢啦 展开
展开全部
1、逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。
2、CSV文件文件是普通文本文件,直接使用文本文件控制参数“r”通过fopen函数即可打开。例如:
int a[1000],b[1000],i;
char s[1000][100];
FILE *fp; /*定义一个文件指针*/
fp=fopen("分数表.csv", "r"); /*打开文件csv文件*/
while(fscanf(fp,"%d,%d,%s",a+i,b+i,s[i])!=EOF){ /*利用逗号间隔,读取文本数据到一个数组里*/
/*处理读取的文本信息*/
}
fclose(fp); /*关闭打开的文件*/
展开全部
你用记事本打开csv文件,如果数之间是用逗号隔开的,用程序一。
如果数之间是用空格隔开的,用程序二。
程序一。
#include <stdio.h>
#define hang 1000
#define lie 9
main()
{
int i,j;
FILE *fid;
int a[hang][lie];
char str[256],str2,str3;
fid=fopen("A.csv","r");
for(i=0; i<hang; i++){
fscanf(fid,"%256[^,]",&str);printf("%s\n",str);
for(j=0; j<lie; j++){
fscanf(fid,",%d",&a[i][j]);
printf("%d\n",a[i][j]);}}
for(i=0; i<hang; i++){
for(j=0; j<lie; j++){
printf("%d ",a[i][j]);}
printf("\n");}
}
程序2:
#include <stdio.h>
#define hang 1000
#define lie 9
main()
{
int i,j;
FILE *fid;
int a[hang][lie];
char str[256],str2,str3;
fid=fopen("A.csv","r");
for(i=0; i<hang; i++){
fscanf(fid,"%256[^ ]",&str);printf("%s\n",str);
for(j=0; j<lie; j++){
fscanf(fid," %d",&a[i][j]);
printf("%d\n",a[i][j]);}}
for(i=0; i<hang; i++){
for(j=0; j<lie; j++){
printf("%d ",a[i][j]);}
printf("\n");}
}
如果数之间是用空格隔开的,用程序二。
程序一。
#include <stdio.h>
#define hang 1000
#define lie 9
main()
{
int i,j;
FILE *fid;
int a[hang][lie];
char str[256],str2,str3;
fid=fopen("A.csv","r");
for(i=0; i<hang; i++){
fscanf(fid,"%256[^,]",&str);printf("%s\n",str);
for(j=0; j<lie; j++){
fscanf(fid,",%d",&a[i][j]);
printf("%d\n",a[i][j]);}}
for(i=0; i<hang; i++){
for(j=0; j<lie; j++){
printf("%d ",a[i][j]);}
printf("\n");}
}
程序2:
#include <stdio.h>
#define hang 1000
#define lie 9
main()
{
int i,j;
FILE *fid;
int a[hang][lie];
char str[256],str2,str3;
fid=fopen("A.csv","r");
for(i=0; i<hang; i++){
fscanf(fid,"%256[^ ]",&str);printf("%s\n",str);
for(j=0; j<lie; j++){
fscanf(fid," %d",&a[i][j]);
printf("%d\n",a[i][j]);}}
for(i=0; i<hang; i++){
for(j=0; j<lie; j++){
printf("%d ",a[i][j]);}
printf("\n");}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
// vc 6.0可能需要使用的头文件
// #include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
// csv需要读取数据的文件名,可自行更改
#define FILENAME "csv"
using namespace std;
void main()
{
int a[1000][9];
int i, j;
string str = "junk";
ifstream in(FILENAME);
if (!in)
{
cerr << "Can not open the file." << endl;
return;
}
for (i = 0; i < 1000; ++i)
{
in >> str;
for (j = 0; j < 9; ++j)
{
in >> a[i][j];
cout << a[i][j] << ' ';
}
cout << endl;
}
in.close();
}
// #include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
// csv需要读取数据的文件名,可自行更改
#define FILENAME "csv"
using namespace std;
void main()
{
int a[1000][9];
int i, j;
string str = "junk";
ifstream in(FILENAME);
if (!in)
{
cerr << "Can not open the file." << endl;
return;
}
for (i = 0; i < 1000; ++i)
{
in >> str;
for (j = 0; j < 9; ++j)
{
in >> a[i][j];
cout << a[i][j] << ' ';
}
cout << endl;
}
in.close();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
int line, a[1000][9];
for (line=0; line < 1000; ++line)
{
scanf("%*s %d %d %d %d %d %d %d %d %d", a[line], a[line]+1, a[line]+2, a[line]+3, a[line]+4, a[line]+5, a[line]+6, a[line]+7, a[line]+8, a[line]+9);
}
}
int main()
{
int line, a[1000][9];
for (line=0; line < 1000; ++line)
{
scanf("%*s %d %d %d %d %d %d %d %d %d", a[line], a[line]+1, a[line]+2, a[line]+3, a[line]+4, a[line]+5, a[line]+6, a[line]+7, a[line]+8, a[line]+9);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用tattackor的回答:
1、逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。
2、CSV文件文件是普通文本文件,直接使用文本文件控制参数“r”通过fopen函数即可打开。例如:
int a[1000],b[1000],i;char s[1000][100];FILE *fp; /*定义一个文件指针*/ fp=fopen("分数表.csv", "r"); /*打开文件csv文件*/ while(fscanf(fp,"%d,%d,%s",a+i,b+i,s[i])!=EOF){ /*利用逗号间隔,读取文本数据到一个数组里*/ /*处理读取的文本信息*/}fclose(fp); /*关闭打开的文件*/
1、逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。
2、CSV文件文件是普通文本文件,直接使用文本文件控制参数“r”通过fopen函数即可打开。例如:
int a[1000],b[1000],i;char s[1000][100];FILE *fp; /*定义一个文件指针*/ fp=fopen("分数表.csv", "r"); /*打开文件csv文件*/ while(fscanf(fp,"%d,%d,%s",a+i,b+i,s[i])!=EOF){ /*利用逗号间隔,读取文本数据到一个数组里*/ /*处理读取的文本信息*/}fclose(fp); /*关闭打开的文件*/
展开全部
来搞笑呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询