从文件插入值读入int和chars C ++

时间:2017-01-28 03:39:26

标签: c++ iostream ifstream

这是我的霍夫曼大学项目的最后阶段。但是,我从未使用过阅读/写作技巧。 我想用密钥从外部文件中读取短二进制文件。

  

3 A 0100 3 E 0101 3 G 0110 3 M 0111 3 N 1010 3 H 1011 2 S 100 1 T 00 2   10 2 I 111

3在一个叫做pos

的int中

A位于名为al

的字符中

0100在一个名为bin等的数组中......

我提交了我的代码,但是我第一次上传堆栈溢出并花了很多时间而且我没有时间,谢谢你的预付款。

1 个答案:

答案 0 :(得分:0)

打开文件,逐行读取文件数据,从行中提取所需内容。

  std::string line;
  ifstream read;
  //open data files     
  read.open(file_name);
  if(read.is_open())
    cout << "File ./" << file_name << " is open.\n";
  else {
    cout << "Error opening " << file_name << ".\n";
    exit(0);
    }

    while (std::getline(read, line))
    {
    // line =3 A 0100 3 E 0101 3 G 0110 3 ...     
     std::istringstream iss (std::move(line));
     std::string val_str, al, bin; 
        while(! iss.str().empty())
        {
            try{
                iss>>val_str;               
                int val= std::stoi(val_str);     //val = 3 in the first run of the while loop
                iss >> al;               //al = A  in the first run of the while loop
                iss >> bin
                // you can use val, al ,bin
            }catch(..){
                break;
            }
        }
    }