æ°æ®æ件å½å为data.txt,æ¾ç½®å°åºç¨ç¨åºåæ件夹ä¸ã
---------------C++å¤çæ¹æ³
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include<ctype.h>
#include <stdlib.h>
using namespace std;
inline void makeitem(vector<int>& item,istringstream &in );
int main(){
string line;
ifstream f("data.txt");
if(!f.is_open()){cout<<"error openfile"<<endl;return 1;}
vector<int> item;
vector<vector<int> > arr;
int num=0;
while(!f.eof()){
int num=0;
getline(f,line);
if(line.empty())continue;
istringstream input(line);
item.clear();
while(!input.eof()){
input>>num;
item.push_back(num);
}
arr.push_back(item);
}
f.close();
//output arr
for (int i=0;i<arr.size();i++){
item=arr[i];
for (int j=0;j<item.size();j++){
cout<<item[j]<<" ";
}
cout<<endl;
}
}
---------------c å符串å¤çæ¹æ³
#include <iostream>
#include <fstream>
#include <vector>
#include<ctype.h>
#include <stdlib.h>
using namespace std;
inline void makeitem(vector<int>& item,char *buf );
int main(){
char *buf=new char[1024];
ifstream f("data.txt");
if(!f.is_open()){cout<<"error openfile"<<endl;return 1;}
vector<int> item;
vector<vector<int> > arr;
int num=0;
while(!f.eof()){
f.getline(buf,1024);
makeitem(item,buf);
arr.push_back(item);
}
for (int i=0;i<arr.size();i++){
item=arr[i];
for (int j=0;j<item.size();j++){
cout<<item[j]<<" ";
}
cout<<endl;
}
}
inline char* nextnum(char* buf,char *p){
while(!isspace(*p)&&*p){
++p;
}
while(isspace(*p)){
++p;
}
return p;
}
inline void makeitem(vector<int>& item,char *buf ){
item.clear();
char *p=buf;
int num=0;
while(isspace(*p)){p++;}//è·³è¿æ¯è¡å¼å§çç©ºæ ¼ã
while(*p){
num=atoi(p);//è·åå½åæéä¸æ¹æ°å;
if(*p){item.push_back(num);}
p=nextnum(buf,p);//å®ä½å°ä¸ä¸ä¸ªæ°å;
}
}
温馨提示:答案为网友推荐,仅供参考