如何更改此程序的输入法?

时间:2016-03-30 14:27:28

标签: c++ file-io

您好我是BME学生,没有太多关于编程的信息。我在互联网上找到了一个简单的程序,我可以完美地运行我的数据,但它只接受手工输入。我想用我拥有的数据文件使其自动化,因为它需要花费很多时间逐个输入所有值。你能帮我整合一些模块来实现这个目标吗?我不想把整个程序放在代码很长的时候,但输入部分如下:

int m;
cout << "Enter the MRI number" << endl;
cin >> m;
cout << "Enter the extensions one by one" << endl;
for (i=1; i<=m; i++)
  cin >> a[i];

所以该计划的主要逻辑是:

1) Enter the total number of MRI extensions >> 4
2) Enter the MRI extensions >> 12131415 12131411 12131419 12131421
3) Run the algorithm and get the output

我的数据文件将是这样的:

4
12131415 
12131411
12131419
12131421

大致这是一个过程,但我的数据文件包含大约70-75个扩展,但不包含4,如上例所示。

任何形式的帮助将不胜感激。谢谢!

如果我的问题以某种方式违反了提出问题的规则,我很抱歉。我读到我的问题应该包括我做的一些工作,但我真的不知道如何处理这个问题。

1 个答案:

答案 0 :(得分:-1)

基本上它是如何工作的,它接受你需要做两件事之一的输入流(cin和cout)。在调用程序时自动执行它(使用将为控制台提供信息的程序),具体取决于您使用的用于Linux的系统,例如cat“input file”|可执行文件。第二种可能性是将输入流更改为文件流。在这种情况下,您需要使用自己声明的文件流,而不是使用cin和cout。

以下是cplusplus.com的示例:

#include <iostream>     // std::cout
#include <fstream>      // std::ifstream

int main () {

  std::ifstream ifs ("test.txt", std::ifstream::in);

  char c = ifs.get();

  while (ifs.good()) {
    std::cout << c;
    c = ifs.get();
  }

  ifs.close();

  return 0;
}

第一行包括输入和输出流。 然后这一行:

std::ifstream ifs ("test.txt", std::ifstream::in);

构造实际的流,rest是流的使用。

int m;
std::ifstream myinputfile ("file you want to read", std::ifstream::in);
myinputfile >> m;
for (i=1; i<=m; i++)
  myinputfile >> a[i];