Премини към съдържанието
Kristian Panov

ПОМОЩ! C++ Проблем със записване на данни във текстов файл!

    Препоръчан отговор


    Хора, имам нужда от помощ.
    Така, това е програма, която генерира шест случайни числа, които не се повтарят.
    Обаче, искам генерираните числа да ги запиша в един текстов файл.
    Това е елементартно, но нещо съм зацепил.
    Ето този код изпълнява записването:  
             
                myfile << "[" << date << "]" << "\n";
                myfile << "Numbers: " << numbers << " " << "\n";
                myfile << "---------------------" << "\n";
                myfile.close();

    А генерирането на числата се изпълнява тук:         

            for (i = 0; i < sizeof(numbers) / sizeof(*numbers); i++)
            {

                cout << numbers << " ";

            }

    Абе вие ще си разгледате кода.
    Та искам, числата, котито се генерират да се записват в текстовият файл.
    Обаче, това - " myfile << "Numbers: " << numbers[ i ] << " " << "\n";" не работи.
    Защото например ако се генерират "3, 46, 23, 11, 20, 15".
    То като отворя файла ми извежда "1", просто някаква единица вместо шестте генерирани числа.



    Кодът:

    #include<fstream>
    #include<iostream>
    #include<windows.h>
    #include<string>
    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #include<conio.h>

    using namespace std;

    void setcolor(unsigned short color)
    {
        HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(hcon,color);
    }

    static void getSix (int *dst)
    {
        int sz, pos, i, src[50];
        for (i = 0; i < sizeof(src) / sizeof(*src); i++)
            src = i + 1;
        sz = 50;
        for (i = 0; i < 6; i++)
        {
            pos = rand() % sz;
            dst = src[pos];
            src[pos] = src[sz - 1];
            sz--;
        }
    }

    int main()
    {

        system("chcp 1251 > nul");
        system("title LotteryWin");

        ofstream myfile("Data.txt", ios::app);
        string date;
        string line;

        int choice;
        cout << "1.Generate Ticket Numbers" << endl;
        cout << "2.List Previous Ticket Numbers" << endl;
        cout << "3.Exit" << endl << endl;
        cout << "Please, enter your choice: ";
        cin >> choice;

        if(choice == 1)
        {

            system("cls");

            cout << "Please, enter the date." << endl;
            cout << "Date: ";
            cin.clear();
            cin.ignore(0xffff, '\n');
            getline(cin, date);

            system("cls");

            srand (time (NULL));
            int i, numbers[6];
            getSix (numbers);

            setcolor(10);
            cout << "Numbers are:" << endl;
            setcolor(7);

            for (i = 0; i < sizeof(numbers) / sizeof(*numbers); i++)
            {

                cout << numbers << " ";

            }
                myfile << "[" << date << "]" << "\n";
                myfile << "Numbers: " << numbers << " " << "\n";
                myfile << "---------------------" << "\n";
                myfile.close();

        }
        system("pause > nul");
        return 0;
    }
     

    Редактирано от Kristian Panov (преглед на промените)

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    Направи цикъл да записва 6-те числа едно по едно 

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове
    преди 24 минути, ined написа:

    Направи цикъл да записва 6-те числа едно по едно 

    Ясно.
    Ама как да направя цикълът да записва, някакъв пример ще дадеш ли?
    Съжалявам, от съвсем скоро започнах да работя с файлове.
    Имам предвид, да записва във файла точно там, където е текста "Numbers: ", тоест там където ги изброява.

    Редактирано от Kristian Panov (преглед на промените)

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове
    преди 3 часа, Kristian Panov написа:

    myfile << "Numbers: " << numbers << " " << "\n";

    Какво ти е ясно ?

    Човека ти каза да замениш това от цитата с това долу:

    myfile << "Numbers: ";
    
    for (int i = 0; i < 6; i++) myfile << numbers[i] << " ";
    
    myfile << "\n";
    

     

    Редактирано от Реджеп Иведик (преглед на промените)

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    Регистрирайте се или влезете в профила си за да коментирате

    Трябва да имате регистрация за да може да коментирате това

    Регистрирайте се

    Създайте нова регистрация в нашия форум. Лесно е!

    Нова регистрация

    Вход

    Имате регистрация? Влезте от тук.

    Вход


    • Горещи теми в момента

    • Подобни теми

      • от Nero AN
        Зададен е едномерен масив от цели числа A0, A1....... An-1. Да се състави програма която създава нов масив а0, а1......., а-1, като стойността на аi е равна на разликата между сумата на четните цифри и сумата на четните цифри на Аi. В програмата да се използват деинамични масиви.


        Благодаря предварително!
      • от Petko2002
        Това е задачата, решението и моят код по задачата ако може да ми кажете къде бъркам
         
         
        #include "stdafx.h"
        #include <iostream>
        #include <string.h>
        #include <math.h> using namespace std; int main()
        {
         cout << "x= ";
         double x;
         cin >> x;
         if (!cin)
         {
          cout << "Error, Bad input! \n";
          return 1;
         }
         cout << "eps= ";
         double eps;
         cin >> eps;
         if (!cin)
         {
          cout << "Error, Bad input! \n";
          return 1;
         }
         if (eps <= 0)
         {
          cout << "Incorrect input! \n";
          return 1;
         }
         double x1 = 1;
         double s = 1;
         int i = 1;
         while (fabs(x1) >= eps)
         {
          x1 = pow(x, i) / i;
          s = s + x1;
          i++;
         }
         cout << "s=" << s << "\n";
         return 0;
        }
      • от 7564321
        Здравейте, тази задача ми се бе паднала на контролно, за съжаление се мъча твърде дълно с нея затова се налага да потърся съвет от някой с повече опит.
        Та ето го условието: 
        Да се създаде свързан списък от естествени числа до въвеждането на 0, чрез добавяне в края. Готовият списък да се иведе на екрана. Да се въведе от клавиатура та цяло число Х и всички елементи на списъка , по-големи от  Х , да се запишат в стек. Да се прочетат елементите на стека и да се изведат на екрана.
        Кодът написан до момента. (фунциите ползвани в него са ни преподавани в лекциите). Моля да обясните защо не работи, как е правилно да бъде направено. 
        #include <iostream> using namespace std; struct List { int x; List *next; }; void Spush(List *& top, int i) { List *p = new List; p->x = i; p->next = top; top = p; } List * Spop(List *& top) { if (top == NULL) return top; List *p = top; top = top->next; return p; } void AddEnd(List *& first, List *& last, int i) { List *p = new List; p->x = i; p->next = NULL; if (first == NULL) first = last = p; else { last->next=p; last=p; } } void PrintList(List * first) { List *p = first; while (p != NULL) { std::cout << p->x << " "; p = p->next; } std::cout << std::endl; } int main() { int y; cin>>y; List *first=NULL,*st,*last; st=NULL; List *p=first; while(y!=0){ AddEnd(first,last,y); cin>>y; } PrintList(first); // Тази част работи до тук st=NULL; int X; cin>>X; if(X>=0){ while (p!=NULL){ if (p->x>X) { Spush (st,p->x); p=p->next; } } } else cout<< "X is less that 0"; while ((p=Spop(st))!=NULL){ cout <<p->x<<" "; delete p; } //Елементите не се извеждат, без никакви грешки cout<<endl; }  
      • от emilovanon
        Здравейте, колеги! Някой може ли да реши задачата: 
        Да се състави програма, която реализира структурата списък. Елементите на структурата да са цели числа тип SHORT. Програмата да представя основните операции със структурата включване и изключване на елемент.
    • Разглеждащи в момента   0 потребители

      Няма регистрирани потребители разглеждащи тази страница.

    • Дарение

    ×

    Информация

    Този сайт използва бисквитки (cookies), за най-доброто потребителско изживяване. С използването му, вие приемате нашите Условия за ползване.