Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 10.02.2022
Сообщений: 2

Программа по выводу координат

10.02.2022, 20:05. Показов 444. Ответов 1
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
Суть такая, есть файл с какими-то данными имеющими такой вид
*слова слова слова
.....
Сoordinates
X Y Z
X Y Z
X Y Z
X Y Z
слова слова слова*

Нужно сделать, чтобы программа начинала работать при встрече слово *Coordinates* и заканчивалась по окончанию данных XYZ;
Пока написал такую программу, она считает максимальное значение X/Y/Z и выводит три значения.
#include <fstream>
#include <iostream>
#include <string>
#include <vector>

using namespace std;
int a = 0; int b = 0; int c = 0;
int main() {
ifstream file("D:\\gg\\input.txt");//файл
string line;//строка

vector <int> nums; //цифры

while (getline(file, line)) { //считывается каждая строка
for (int i = 0; i < line.length(); i++) {//считываается каждый символ
if (isdigit(line[i])) { //если число
nums.push_back(atoi(&line[i]));//то записать его в массив с числами
while (isdigit(line[i]))
++i;
}
//а если не число, то ничего делатьсе больше не будет
}
}

ofstream f("D:\\gg\\output.txt");
for (int i = 0; i < nums.size(); i++) //вывести цифры
{
if (i == 0 || i % 3 == 0 && nums[i] > a) {
a = nums[i];
}
else if (i % 3 == 1 && nums[i] > b) {
b = nums[i];
}
else if (i % 3 == 2 && nums[i] > c) {
c = nums[i];
}
}
f << a << " " << b << " " << c;
f.close();
return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.02.2022, 20:05
Ответы с готовыми решениями:

Программа по выводу матрицы.
Вводится матрица M(n,n) с цифровой информацией. Составить программу подсчёта сумм элементов, составляющих &quot;чёрные&quot; и, отдельно,...

программа по выводу уравнения не работает
Выдает что программа правильная, при выводе коэффициентов выдает ошибку, те нет ответа в задаче, возможно я что то пропустил... ...

Программа по выводу элементов матрицы
Ввести элементы матрицы 4х3 (байты, положительные числа) таким образом, чтобы существовала только одна строка с минимальной и одна строка с...

1
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
10.02.2022, 21:56
Я бы воспользовался регексом, чтоб проверять строки на содержание координат, и стрингстримом для считывания даблов.

Что-то вроде такого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <istream>
#include <regex>
#include <sstream>
#include <iomanip>
 
struct Coordinate {
    Coordinate(): x{}, y{}, z{} {}
    Coordinate(double x, double y, double z): x{x}, y{y}, z{z} {}
    double x;
    double y;
    double z;
};
 
std::ostream &operator<<(std::ostream &out, const Coordinate &c) {
    return out << std::fixed << std::setprecision(6) << c.x << ", " << c.y << ", " << c.z;
}
 
int main() {
 
    std::istream &in = std::cin;
    std::regex threeDoubles{"(\\s*\\d+(\\.[0-9]+)?){3}\\s*"}; // тут косяк в регулярке - пробел между числами необязателен. поправьте. хотя, может вам и так сойдёт.
    std::vector<Coordinate> coordinates;
    while (in.good()) {
        std::string line;
        std::getline(in, line);
        if (line == "Coordinates") {
            while (in.good()) {
                std::getline(in, line);
                if (std::regex_match(line, threeDoubles)) {
                    std::stringstream ss(line);
                    double x, y, z;
                    ss >> x >> y >> z;
                    coordinates.emplace_back(x, y, z);
                } else {
                    break;
                }
            }
        }
    }
 
    for (const auto &i : coordinates) {
        std::cout << i << std::endl;
    }
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.02.2022, 21:56
Помогаю со студенческими работами здесь

Не работает программа по выводу чисел.
#include &lt;iostream&gt; using namespace std; void main () { int n, i=0, x, y; cout&lt;&lt;&quot;Vvediten\n&quot;; cin&gt;&gt;n; cout&lt;&lt;&quot;Vvedite...

Не работает программа по выводу в порт LPT
#include &lt;unistd.h&gt; #include &lt;asm/io.h&gt; #define time 1000 int main() { ioperm(0x278,1,1); while(1) { ...

Программа по выводу текста. (Непонятен результат)
Всем привет, в книге Сьерра К Бейтс Б есть следующее упражнение: http://imgdepo.com/id/10623848.jpg Я его сделал но результат мне не...

Программа по выводу самого большого введеного слова
Всем доброго времени суток, недавно начал изучать C++, нужно написать приложение, в которое пользователь вводит строку, а программа выдает...

Программа по выводу самого длинного слова из списка
Здравствуйте написал программу по выводу самго длинного слова из списка. Надо преобразовать прогу в следующем виде... Написать класс с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru