2015-11-14 13 views
0

我想显示CSV数据到行和例如柱形式
名UID类
nnn的1甲
BBB 2 B
CCC 3甲如何CSV的显示内容文件到一个数组用C++

这是我到目前为止已经试过:

#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数据的代码,但它实际上显示了所有的数据放在了罪gle线。

+0

你是什么意思显示?另外,请显示你的尝试。 –

+2

[我如何在C++中读取和解析CSV文件?](http://stackoverflow.com/questions/1120140/how-can-i-read-and-parse-csv-files-in-c) – user463035818

+0

tobi303这个网页对我没有用处。我已经检查了与此问题相关的所有链接 – Namita

回答

0

您可以使用getline成员函数来抓取完整的一行。然后改变这一行:

cout<<s<<" "; 

cout<<s<<"\n"; 

而且,我相信你的while循环的条件是不正确。

+0

此代码是正确执行,但显示连续形式的CSV文件的数据... – Namita

+0

如果你想进一步格式化,然后你需要将每行解析为字段,适当地转换每个字段(例如,它是一个int,double等),然后适当地格式化转换的字段。您可以在main中执行此操作,也可以创建CSV阅读器类,以便代码可以重复使用。查看以上关于CSV阅读器的链接。 –

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 
} 
0

细胞在.csv文件与检查的行(线) ';'标志。

例如,当您从.csv文件读取该行的每一列中的一行时,请检查';'签名,你可以使用这个连续的独立列!

相关问题