我想将csv数据显示为行和列形式,例如
命名uid类
nnn 1 A
bbb 2 B
ccc 3 A
这是我到目前为止所尝试的:
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<fstream.h>
#include<stdlib.h>
void main()
{
clrscr();
ifstream ifile;
char s[100], fname[20];
cout<<"Enter file name to read and display its content" ;
cin>>fname;
ifile.open(fname);
if(!ifile)
{
cout<<"Error in opening file..!!";
getch();
exit(0);
}
while(ifile.eof()==0)
{
ifile>>s;
cout<<s<<" ";
}
cout<<"\n";
ifile.close();
getch();
}
这是我显示csv数据的代码,但实际上它显示了一行上的所有数据。
答案 0 :(得分:0)
您可以使用getline成员函数来获取完整的一行。然后改变这一行:
cout<<s<<" ";
到
cout<<s<<"\n";
另外,我认为你的while循环条件不正确。
答案 1 :(得分:0)
使用std::getline
读取一行(包括逗号)。从此行创建std::stringstream
。
然后使用std::getline
根据逗号分割行。您将不得不使用嵌套循环。
代码草图:
std::string line, word;
while (std::getline(ifile, line))
{
std::stringstream stream(line);
while (std::getline(stream, word, ','))
{
... (whatever you want to do with each word)
}
std::cout << '\n'; // whatever you want to do at end of line
}
答案 2 :(得分:0)
.csv文件的行(行)中的单元格用';'检查登录。
例如当你从.csv文件中读取一行时,该行的每一行都用';'检查签名,您可以将其用于连续的单独列!