цикл по числам из текстового файла с использованием Fstream - PullRequest
0 голосов
/ 28 октября 2018

Я немного новичок в C ++, поэтому стараюсь упростить ситуацию.

Я пытаюсь применить цикл, который просто выводит каждое число из текстового файла.И есть много чисел.

Я пытался сделать это с помощью цикла 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 голосов
/ 28 октября 2018

Вот как я должен напечатать число в файле:

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

В вашем примере вы не объявили n, поэтому неясно, какой тип является правильным.Код предполагает int и что <algorithm> и <iterator> включены.

0 голосов
/ 28 октября 2018
#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.
...