Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Имам излишни символи в създадения ми файл! C++

Featured Replies

// В кода ми по принцип работи всичко, само когато създава файла, вътре в файла имам верния вариант на кода ми и плюс някакви символи, които не ми трябват, и не мога да разбера защо по принцип излизат, ако някой може да ме насочи с това?


#include <stdio.h>
#include <conio.h>
#include <string>
#include <iostream>
using namespace std;

struct car
{
    char label[50];
    int number;
    int year;
    float price;
};

void main()
{
    car cars[3];

    for (int i = 0; i < 3; i++)
    {
        cout << "type the label of the car:  ";
        cin >> cars[i].label;

        cout << "type the registration nummber of the car: ";
        cin >> cars[i].number;

        cout << "type the manufacture year of the car: ";
        cin >> cars[i].year;

        cout << "type the price of the car: ";
        cin >> cars[i].price;
        cout << "\n";

        if (cars[i].year >= 2000)
        {
            FILE* Carmodels;
            fopen_s(&Carmodels, "C:\\carmodels.txt", "w");
            fwrite(cars, sizeof(car), 3, Carmodels);
            fclose(Carmodels);
        }
        getchar();
    }

    _getch;
}

Кои точно са тези символи? Кода откъде и как го копира? Тук има бутон за код, защо не го ползваш? Достатъчно е къс кода, за да махнеш ръчно излишното или и това те мързи?

char label[50];

в тия 50 байта имаш име на колата, 0 и случайни символи до края на масива

 

  • Автор
преди 18 минути, Raze написа:

Кои точно са тези символи? Кода откъде и как го копира? Тук има бутон за код, защо не го ползваш? Достатъчно е къс кода, за да махнеш ръчно излишното или и това те мързи?

Еми нов съм в сайта не видях че можем да вмъкнем с функция кода тука, изпратих снимки точно какво се случва в файла, "Кода откъде и как го копира?" кода написах сам не съм копирал нищо, само копирах от Visual Studio 20 и печатнах тук, кода ми може да е къс защото съм нов с тези работи, и не ме мързи просто не знам как да ги махна тези символи, потърсих из интернета няма решения за точно за моята ситуация 

изображение_2021-12-27_211734.png

Screenshot_1.png

преди 3 минути, ined написа:

char label[50];

в тия 50 байта имаш име на колата, 0 и случайни символи до края на масива

 

Да малко имах представа че може би излишните символи идват от там, но аз го направих с 50 защото там да има достатъчно символи да може да разчита кода, щото ако напиша например с 10, и думата която пиша или в този случай марката на колата е по голямо от 10 символа, мисля че няма да го разчете добре

  • Автор
преди 16 минути, цър-вул написа:

Направи ги 25. Едва ли ще срещнеш модел с толкова дълго име

че то колкото и да го смалям тия символи пак излизат, пробвах го, просто не знам дали съм написал кода по грешния начин или, по принцип така трябва да излиза като решение

  • Автор
преди 10 минути, цър-вул написа:

Отвори файла с notepad и премахни символите. Запиши и отвори с VS.

но смисъл това как ще реши проблема, това става ръчно, но исках това да се направи от себеси, 

Ползвай друг тип данни, който се променя според броя на символите, в който да съхраняваш имената. Например някой динамичен списък.

Няма никакъв проблем и така да си е файла ако ще се чете само от програмата, ако искаш да е достъпен обаче като текст трябва да го записваш като текстов файл, така и имената няма имат "излишни" символи и година и цена ще са си като числа, а не някакви символи.

 

  • Автор
преди 6 минути, ined написа:

Няма никакъв проблем и така да си е файла ако ще се чете само от програмата, ако искаш да е достъпен обаче като текст трябва да го записваш като текстов файл, така и имената няма имат "излишни" символи и година и цена ще са си като числа, а не някакви символи.

 

по принцип това ми е като задача, и после ще го проверят, от мен се искаше като краен отговор да изпише колите които са продуцирани в 2000 или след 2000-ната година, то аз го направих и се записват в файла, но както виждате има други символи които по принцип не трябва да са там, едва ли това ще го използвам някъде в публично място, но господине който ни преподаваше по принцип каза че няма много голяма разлика между двоични файлове и текстови файлове, и затова го написах с двоично защото не работихме преди с текстови, те се приличат но ако това може да е решения за проблема мога да пробвам

преди 10 часа, Paradox1219 написа:

по принцип това ми е като задача, и после ще го проверят, от мен се искаше като краен отговор да изпише колите които са продуцирани в 2000 или след 2000-ната година, то аз го направих и се записват в файла, но както виждате има други символи които по принцип не трябва да са там, едва ли това ще го използвам някъде в публично място, но господине който ни преподаваше по принцип каза че няма много голяма разлика между двоични файлове и текстови файлове, и затова го написах с двоично защото не работихме преди с текстови, те се приличат но ако това може да е решения за проблема мога да пробвам

Нямаше ли начин в С++ да се създава масив с динамична стойност, използвайки pointer ? Или аз нещо бъркам. Реално Raze също ти е дал вариант, просто трябва да направиш така, че големината на масива да е равна на модела, защото, ако е по-малко не става очевидно, а с по-голяма размерност пъха разни символи. Другия вариант е след създаването на колата и преди писането във файла да филтрираш данните от масива.

Нищо от това което предлагате не работи по начина който записва масива във файл. Разликата е, че начина който ползва работи, докато ако се ползват динамично генерирани масиви и стрингове трябва да добавят допълнителни стъпки към начина на записа във файла, както и при четенето му.

преди 4 часа, ined написа:

Нищо от това което предлагате не работи по начина който записва масива във файл. Разликата е, че начина който ползва работи, докато ако се ползват динамично генерирани масиви и стрингове трябва да добавят допълнителни стъпки към начина на записа във файла, както и при четенето му.

Явно си имаш понятие баш от С++, можеше да напишеш барем какво да промени, че да записва най-малкото с вектори

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

Разглеждащи това в момента 0

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

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.