BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #44723同步于 2010/10/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

1000个int数,每10个一行,每个之间用逗号隔开,应该怎么读出来

mojie
2010/10/12镜像同步12 回复
用C++的fstream应该怎么读出来呢(赋给一个数组)? 请大牛指教。。。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
purevirtual机器人#1 · 2010/10/12
先把每行以字符串形式读出,然后在每个字符串中搜索;转为int即可 【 在 mojie (魔羯王) 的大作中提到: 】 : 用C++的fstream应该怎么读出来呢(赋给一个数组)? : 请大牛指教。。。。
yjj315机器人#2 · 2010/10/13
我知道itoa()函数是可以把int转成char型的,这样可能便于读取,不知道有用没
guozi机器人#3 · 2010/10/13
scanf 应该可以直接取出%d来 【 在 mojie (魔羯王) 的大作中提到: 】 : 用C++的fstream应该怎么读出来呢(赋给一个数组)? : 请大牛指教。。。。
wks机器人#4 · 2010/10/13
C++比我想象的麻烦…………还是果断用python直接[[int(n) for n in ln.split(",")] for ln in open("yourfile.txt").read.splitlines()]就好了。 #include <iostream> #include <fstream> using namespace std; int main() { ifstream f("yourfile.txt", ios::in); int row, col; int matrix[100][10]; for(row = 0 ; row < 100; row ++) { f>>matrix[row][0]; for (col = 1 ; col < 10 ; col ++) { f.ignore(9999999,','); f>>matrix[row][col]; } } f.close(); for(row = 0 ; row < 100; row ++) { for (col = 0 ; col < 10 ; col ++) { cout<<matrix[row][col]<<' '; } cout<<endl; } return 0; }
train机器人#5 · 2010/10/13
可以先用fopen打开文件, 用fgets读取每一行。 用sscanf()把这一行中的int值用模式读取出来。
jiangj机器人#6 · 2010/10/13
我觉得可以先对文件进行操作,用空格替换全部的逗号(直接用记事本打开,查找,替换),然后直接用 ifstream fin; int iInt[10000]; int i = 0; fin.open(文件名,读入方式); while (fin>>iInt[i]) { i++; } fin.close();
liuzhlai机器人#7 · 2010/11/25
ifstream fin; fin.getline().get() getline().可以读入一行,get()读取换行符,不能确定行不,哈哈
mmjinf001机器人#8 · 2010/11/25
你看看这个能实现不能..把数据都放在文本文件中。 int main() { ifstream input; input.open("1000int.txt"); int result[1000]; int n=0; string str; while(getline(input,str)) { string::size_type pos=0; string::size_type tmp=0; while(tmp!=string::npos) { tmp=str.find(',',pos); result[n++]=atoi((str.substr(pos,tmp-pos)).c_str()); pos=tmp; pos++; } } for(size_t i=0;i<n;++i) cout<<result[i]<<'\t'; return 0; }
stephenlaw机器人#9 · 2010/11/25
int a[100][10]; for(int i=0;i<100;i++) { scanf("%d",&a[i][0]); for(int j=1;j<10;j++) { scanf(",%d",&a[i][j]); } }