170 похожих чатов

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

последовательно печатают таблички с помощью cout, в режиме релиза, строки печатаются вперемешку, как будто они работают асинхронно?

3 ответов

13 просмотров

Делай в конце строчки flush

Более сказать ничего нельзя, надо код

Антон- Автор вопроса
Ilya Zviagin
Более сказать ничего нельзя, надо код

запусти у себя на горячую #include <iostream> #include <iomanip> #include <cmath> #include <vector> #include <Windows.h> #include <algorithm> #include <cstdlib> using namespace std; struct Point { double x, y; }; const int C = 8; const double H = 0.007; double targetFunc(double x) { return pow(C, 3) * cos((x + 10 * C) / C); } double linearInterpolation(const double x, const Point& startP, const Point& endP) { double deltaY = endP.y - startP.y; double q = (x - startP.x) / H; return startP.y + q * deltaY; } void printTargetFuncTable(const vector<Point>& arr) { ios init(0); init.copyfmt(cout); const int HCell = 15; const int HRow = 34; const int HTitle = 25; //---------------HEADER------------------------- cout << setw(HTitle) << setfill(' ') << "Значение функции" << endl; cout << setw(HRow) << setfill('-') << ' ' << endl; cout << '|' << setw(HCell) << setfill(' ') << 'x' << '|'; cout << setw(HCell) << setfill(' ') << 'y' << '|' << '\n'; cout << setw(HRow) << setfill('-') << ' ' << '\n'; cout << flush; //----------------BODY-------------------------------- for (auto target = arr.begin(); target != arr.end(); target += 1) { cout << fixed << setprecision(4); cout << '|' << setw(HCell) << setfill(' ') << target->x << '|'; cout << setw(HCell) << setfill(' ') << target->y << '|' << '\n'; cout << setw(HRow) << setfill('-') << ' ' << endl; cout << flush; } cout.copyfmt(init); } void printLinearInterpolationTable(const vector<Point>& arr) { ios init(0); init.copyfmt(cout); const int HCell = 25; const int HRow = 80; const int HTitle = 60; //---------------HEADER------------------------- cout << setw(HTitle) << setfill(' ') << "Таблица линейной интерполялции" << endl; cout << setw(HRow) << setfill('-') << ' ' << endl; cout << '|' << setw(HCell) << setfill(' ') << 'x' << '|'; cout << setw(HCell) << setfill(' ') << "y приближ." << '|'; cout << setw(HCell) << setfill(' ') << "y точн." << '|' << endl; cout << setw(HRow) << setfill('-') << ' ' << endl; //----------------BODY-------------------------------- for (auto target = arr.begin(); target != arr.end(); target += 1) { cout << fixed << setprecision(4); cout << '|' << setw(HCell) << setfill(' ') << target->x << '|'; cout << setprecision(14); cout << setw(HCell) << setfill(' ') << target->y << '|'; cout << setw(HCell) << setfill(' ') << targetFunc(target->x) << '|' << endl; cout << setw(HRow) << setfill('-') << ' ' << endl; cout << flush; } cout.copyfmt(init); } int main() { SetConsoleOutputCP(1251); // создание таблицы с результатом расчетов функции vector<Point> TfRes; for (int i = 0; i <= 15; i++) { double x = C + i * H; TfRes.push_back({ x, targetFunc(x) }); } // печать таблицы printTargetFuncTable(TfRes); // нахождение значений линейной интерполяции в точке vector<Point> interpolArr; for (int i = 1; i <= 14; i++) { double x = C + 0.6 * i * H; // поиск близжайшей точки меньше x auto PointPtr = find_if( TfRes.begin(), TfRes.end(), [&x](Point p) -> bool {return x > p.x; } ); interpolArr.push_back({ x, linearInterpolation(x, *PointPtr, *(PointPtr + 1)) }); } // печать таблицы линейной интерполяции printLinearInterpolationTable(interpolArr); system("pause"); return 0; }

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
3
Карта сайта