Как бы я сохранил вывод этого forloop - PullRequest
0 голосов
/ 30 августа 2018

Это код, который я уже написал, но я хотел бы иметь возможность сохранить вывод цикла for в файл. Я пытался использовать разные способы, такие как использование ofstream вокруг цикла вне цикла и внутри цикла. Однако, несмотря на то, что при использовании этих кодов мой код запускается, он не выводит информацию в файл, как хотелось бы.

#include <iostream>
#include <fstream>

using namespace std;

struct MyStruct {
    int number;
    int numbertwo;
};

void printStruct(MyStruct thestruct);

int main(){
    MyStruct alex[4] = {{15, 20},{30, 35},{45, 50},{60, 65}};

    cout<<"Number"<<"\t"<<"Numbertwo"<<endl;

    int sizeofarray = 4;

    for(int x = 0; x < sizeofarray; x = x+1){
        printStruct(alex[x]);
    }
}

void printStruct(MyStruct thestruct){
    for(int x = 0;x < 1; x++)
     if(thestruct.number > 30){
      cout<<thestruct.number*10<<"\t"<<thestruct.numbertwo<<endl;}
     else if(thestruct.number <= 30){
      cout<<thestruct.number*10<<"\t"<<thestruct.numbertwo<<endl;

}

1 Ответ

0 голосов
/ 30 августа 2018

Если вы добавите параметр потока в функцию печати, вы можете выбрать, куда он направляется.

void printStruct(ostream& os, const MyStruct& thestruct);

int main(){
    MyStruct alex[4] = {{15, 20},{30, 35},{45, 50},{60, 65}};
    int sizeofarray = 4;

    // Print to a file
    ofstream output("results.txt");
    output << "Number" << "\t" << "Numbertwo" << endl;
    for(int x = 0; x < sizeofarray; x = x+1){
        printStruct(output, alex[x]);
    }

    // Print the same to stdout
    cout << "Number" << "\t" << "Numbertwo" << endl;
    for(int x = 0; x < sizeofarray; x = x+1){
        printStruct(cout, alex[x]);
    }

}

void printStruct(ostream& os, const MyStruct& thestruct){
    if(thestruct.number > 30){
        os << thestruct.number*10 << "\t" << thestruct.numbertwo << endl;
    else
        os << thestruct.number*10 << "\t" << thestruct.numbertwo << endl;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...