像图片中,其实只有四行数据,但每一行的数据都很多,而且数目不定,这种csv文件怎么读取和在程序中输出?
解决方案
10
getline 按行读取,然后 boost split string 按 , 分解就行。
50
大家一般是指方向,不会有具体的说帮忙实现的
假如你实现不了,那你就先尝试下一行行读取,用getline,然后再搜索下用c++做split
假如你连getline都不会,你就得先学学怎么样读取文件
假如这都不会,那你就别用C++,用python什么的这些你会的或容易的
假如还是不会,那先学程序再说
10
给你示例代码
#include <iostream> #include <sstream> #include <fstream> using namespace std; int main() { string line, number; ifstream f("D:\test.txt", ifstream::_Nocreate); if (f.fail()) { cout << "Cannot open file" << endl; return -1; } while(std::getline(f, line)) { istringstream is(line); while(std::getline(is, number, ",")) { cout << number << " "; } cout << endl; } }
10
仅供参考:
#include <stdio.h> char s[]="123 ab 4"; char *p; int v,n,k; void main() { p=s; while (1) { k=sscanf(p,"%d%n",&v,&n); printf("k,v,n=%d,%d,%d\n",k,v,n); if (1==k) { p+=n; } else if (0==k) { printf("skip char[%c]\n",p[0]); p++; } else {//EOF==k break; } } printf("End.\n"); } //k,v,n=1,123,3 //k,v,n=0,123,3 //skip char[ ] //k,v,n=0,123,3 //skip char[a] //k,v,n=0,123,3 //skip char[b] //k,v,n=1,4,2 //k,v,n=-1,4,2 //End.