返回信息流用C++的fstream应该怎么读出来呢(赋给一个数组)?
请大牛指教。。。。
这是一条镜像帖。来源:北邮人论坛 / cpp / #44723同步于 2010/10/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
1000个int数,每10个一行,每个之间用逗号隔开,应该怎么读出来
mojie
2010/10/12镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
先把每行以字符串形式读出,然后在每个字符串中搜索;转为int即可
【 在 mojie (魔羯王) 的大作中提到: 】
: 用C++的fstream应该怎么读出来呢(赋给一个数组)?
: 请大牛指教。。。。
scanf 应该可以直接取出%d来
【 在 mojie (魔羯王) 的大作中提到: 】
: 用C++的fstream应该怎么读出来呢(赋给一个数组)?
: 请大牛指教。。。。
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;
}
我觉得可以先对文件进行操作,用空格替换全部的逗号(直接用记事本打开,查找,替换),然后直接用
ifstream fin;
int iInt[10000];
int i = 0;
fin.open(文件名,读入方式);
while (fin>>iInt[i])
{
i++;
}
fin.close();
你看看这个能实现不能..把数据都放在文本文件中。
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;
}
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]);
}
}