错误的文件输入c++

Incorrect file input c++

本文关键字:c++ 输入 文件 错误      更新时间:2023-10-16

由于某些原因,这段代码

for (i = 0; i < 1024; i++)
    mem[i] = 0;
  //Read input file
  instructions.open (fname.c_str(), fstream::in);
  if (!instructions.is_open() ) {
    std::cout << "Error 404: file not foundn";
    exit (404);
  }
for (i = initial_pos; !instructions.eof(); i++) 
  instructions >> mem[i];

正在读取这个文件

1
21
1
9
11
9
16
11
9
3
60
2
0
21
0
1
11
4
0
2
2
90
0
这样

:

1
33
1
32
11
0
28
11
1
26
11
2
24
11
3
22
41
1
1
51
8
22
1
3
21
2
0
60
34
12
5
2
2
3
90
0
0
0
1
0

是否有什么特别的原因为什么>>操作数似乎是向mem添加随机数?请注意,mem是一个初始化的数组,所有的数字都是在读取后打印出来的。

冒着写第一百遍的风险,下面是你的代码应该是的样子:

std::ifstream infile(fname.c_str());   // "in" is implied
if (!infile) { /* error, could not open file */ }
for (int n; infile >> n; )
{
    // we read the number n
}

如果你只想要一个整数的容器,那就更好了:

#include <vector>
#include <iterator>
#include <fstream>
std::ifstream infile(fname.c_str());
std::istream_iterator<int> beg(infile), end();
std::vector<int> v(beg, end);
// now "v" contains all the integers.

修复。我把可执行文件调用错了。

应该是:

[[[[输入名称]]]]

但是我是这样命名的:

sim test1.bin

因此模拟器将初始PC设置为"test1.bin",并将输入设置为默认输入"input.bin",因此我读取了错误的文件。

我想这总是归结为糟糕的家庭作业发音。