Как сохранять символы, которые производит мой код в c ++ в файле .txt?

я разрабатываю основную программу, которая производила бы несколько случайных кодов, и хочу сохранять их в файле txt, до настоящего времени у меня есть часть, где он производит мне коды, но мне остается сохранять их в одном archivo.txt, он был бы благодарен за, если они могут помогать мне

#include <iostream>
#include <time.h>

#include <fstream>

using namespace std;

int num,num2,num3,j,x,y,z,t;
string c;

int main(){

cout<<"\n\n Cuantos codigos desea generar? : "; //solicitando el numero de codigos
cin>>t;
cout<<"\n";

srand(time(NULL));

while(t != j){                           //Validando que el numero de codigos se cumpla
        for(int i=1;i<=15;i++){          //Determinando la longitud de los codigos(15)

        num = rand();
        num=65+rand()%(90-65);   //Limtando los caracteres ascci a letras en mayuscula (aleatorio)
        num2=48+rand()%(57-48);  //Limitando los caracteres ascci a numeros(aleatorio)
        num3=1+rand()%(3-1);     //Generando numero para determinar si se usara numeros o letras

        if(num3==1){   //Determinando si el caracter que se genera es una letra o numero (aleatorio)
            c=num;
            cout<<c;
        }
        else 
        {
            c=num2;
            cout<<c;
        }

        }

cout<<"\n";
z=j++;
}
escribir(); 
system("pause");

return 0;

}

Компиляция:

Сколько коды хоти произвести?: 5

R3F33O70543NU7R
HIA8XR5R73FMRGS

1
задан 28.11.2019, 07:47
3 ответа

Упрощенной формы, оператора < < env¦ - в переменные, куда его показывает direcci¦n пика - paréntesis. Это означает, что, когда ты делаешь:

cout << variable;

то, что ты делаешь, состоит в том, чтобы посылать изменчивые к cout , которые представляют вывод estÃ: ndar, что обычно является экраном. Если ты хочешь послать этот же самый informaci¦n к другому месту (ej, файл) ты должен иметь сначала ссылку на вышеупомянутое место.

, Чтобы открывать файл, например, ты можешь использовать следующий c¦digo:

#include <fstream>

int main() {
    std::ofstream archivo("nombre_de_archivo.txt");
}

Сейчас я храню в архиве он позволяет тебе посылать данные в "nombre_de_archivo.txt" таким же образом как cout ранее ты permit¦, - чтобы посылать данные в экран.

Ло único, которого ты должен делать сейчас, состоит в том, чтобы меняться cout < < переменная из-за:

archivo << variables;

Сейчас только заменяет все cout на файл и решенную тему.

3
ответ дан 01.12.2019, 22:19

Ты можешь использовать разгрузку, ассоциируемую с файлом и властвовать informaci¦n как будто ты использовал

cout << variable;

, Должен создавать переменную типа ofstream и присоединять к нему файл. AdemÃ: s, важно подтверждать, что файл добился открыться с éxito используя funci¦n fail()


#include <fstream>

int main(){
    std::ofstream fout("fichero.txt");

    if (fout.fail()){
        cerr << "ERROR: No se ha podido abrir o crear fichero.txt" << endl;
        exit(-1);
    }

    // se ha abierto (o creado si no existia) con exito

}

, Ты можешь консультировать documentaci¦n ofstream для mÃ: s informaci¦n

2
ответ дан 01.12.2019, 22:19

Я исправил твой c¦digo, чтобы делать это самым простым способом... однако, способ больше простые из этого делать (но не поэтому лучшая, и в самом деле возненавидят меня много программистов здесь) - следующий:

#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <fstream>

using namespace std;

int num,num2,num3,j,x,y,z,t;
string c, echo, txtoutput; // declaro estas strings que me van a ayudar
txtoutput = " >> archivo.txt";
int main(){

cout<<"\n\n Cuantos codigos desea generar? : "; //solicitando el numero de codigos
cin>>t;
cout<<"\n";

srand(time(NULL));

while(t != j){                           //Validando que el numero de codigos se cumpla
        for(int i=1;i<=15;i++){          //Determinando la longitud de los codigos(15)

        num = rand();
        num=65+rand()%(90-65);   //Limtando los caracteres ascci a letras en mayuscula (aleatorio)
        num2=48+rand()%(57-48);  //Limitando los caracteres ascci a numeros(aleatorio)
        num3=1+rand()%(3-1);     //Generando numero para determinar si se usara numeros o letras

        if(num3==1){   //Determinando si el caracter que se genera es una letra o numero (aleatorio)
            c=num;
            cout<<c;
            echo = "echo ";
            echo += c;
            echo += txtoutput;
            system(echo.c_str());
        }
        else 
        {
            c=num2;
            cout<<c;
            echo = "echo ";
            echo += c;
            echo += txtoutput;
            system(echo.c_str());
        }

        }

cout<<"\n";
z=j++;
}
escribir(); 
system("pause");

return 0;

}
0
ответ дан 01.12.2019, 22:19