使用fstream

时间:2018-10-27 23:48:59

标签: c++ loops fstream

我对C ++有点陌生,所以我试图使事情保持简单。

我正在尝试应用一个循环,该循环只是从txt文件中打印出每个数字。还有很多数字。

我一直在尝试使用for循环来执行此操作,但是没有成功。这只是我的尝试之一:

int main() {
    fstream myFile;
    myFile.open("resources/numbers.txt");

    if (myFile) {
        cout << "This file is opened\n";
    }
    else
        return EXIT_FAILURE;

    for (i = 1; i<n; i++){
        myFile >> n;
        cout << n;
    }

    return 0;
}

我不想使用数组或getLine。我只想从txt文件中提取每个数字,然后将其打印给用户,直到打印每个数字为止。

有一种简单的方法吗?

感谢一百万!

2 个答案:

答案 0 :(得分:0)

#include <cstdlib>  // EXIT_FAILURE
#include <iostream>
#include <fstream>

int main()
{
    std::ifstream myFile{ "resources/numbers.txt" };  // use c-tor to open
    //   ^ ifstream ... we only want to read

    if (!myFile.is_open()) {
        std::cerr << "File couldn't be opened for reading :(\n\n";
        return EXIT_FAILURE;
    }

    std::cout << "File is open for reading.\n\n";

    int number;
    while(myFile >> number) // as long as integers can be extracted from the stream,
        std::cout << number << '\n';  // print them.
} // no need to return anything as main() returns 0 when not return statement
  // is present.

答案 1 :(得分:0)

这是我在文件中打印数字的方式:

std::copy(std::istream_iterator<int>(myFile),
          std::istream_iterator<int>(),
          std::ostream_iterator<int>(std::cout, “\n”));

在您的示例中,您没有声明n,因此尚不清楚正确的类型是什么。该代码假定int并包含<algorithm><iterator>