c++ getline 读不到东西_C++,使用getline一直读取不到文件中的内容

想试着写一个做矩阵运算的代码,然后发现一直都无法使用getline()从文件中读取矩阵。但是我在别的代码中却可以使用getline(),下面是代码。

#include

#include

#include

#include

#include

using namespace std;

typedef vector> douvec;

//产生一个含有矩阵的文件,这里能够正常的产生矩阵文件

void create_file (fstream &file) {

int rank;

//提示输入产生的矩阵的维度

cout << "input the rank: ";

cin >> rank;

//随机生成矩阵的数值

srand(time(0));

for (int r = 0; r < rank; r++){

for (int c = 0; c < rank; c++)

file << rand()%2 << " ";

file << '\n';

}

}

//讲文件中的矩阵读入一个二维vector中

auto create_matrix (fstream &file) -> vector> {

char num;

string line;

douvec matrix;

//这里的getline一直都读取不了文件中的任何的数据

while (getline(file, line)){

stringstream record(line);

vector temp;

if (line == "")

break;

while (record >> num){

int number = (int)num;

temp.push_back(number);

}

matrix.push_back(temp);

}

return matrix;

}

int main(){

fstream file("file.txt", ofstream::app);

douvec matrix;

create_file(file);

//这里输出的matrix.size()一直都是0

cout << "matrix size is " << matrix.size() << endl;

matrix = create_matrix(file);

for (int row = 0; row < matrix.size(); ++row){

for (int col = 0; col < matrix[row].size(); ++col)

cout << matrix[row][col] << " ";

cout << endl;

}

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值