(Как) ввести 2 значения одновременно, используя один оператор 'cin' в определенном формате

Возможно ли отобразить входное сообщение следующим образом?

Enter First Fraction:_/_
Enter Second Fraction: _/_

Где _ - пробелы для ввода?

Используя какой-то следующий код ??

cout<<"Enter First Fraction: ";
cin>>N1>>"/">>D1;
cout<<"Enter Second Fraction: ";
cin>>N2>>"/">>D2;

ИЛИ

cout<<"Enter First Fraction: ";
cin>>N1>>/>>D1;
cout<<"Enter Second Fraction: ";
cin>>N2>>/>>D2;

person Genious28    schedule 30.10.2020    source источник
comment
нет, ты не можешь этого сделать. Вам нужно расширенное взаимодействие с вашим терминалом, чтобы сделать что-то подобное. Бьюсь об заклад, ncurses может это сделать   -  person 463035818_is_not_a_number    schedule 30.10.2020
comment
проклятия? что это?   -  person Genious28    schedule 30.10.2020
comment
Я видел этот код в другом вопросе о стеке.. ``` char plus{},img{}; двойной х{},у{}; cin›› x ›› plus ›› y ›› img; if (plus!='+' || img!='i') cout ‹‹ \nОшибка: ‹‹ x= ‹‹ x ‹‹, plus= ‹‹ плюс ‹‹, y= ‹‹ y ‹‹, img = ‹‹ изображение; else cout ‹‹ \nКомплекс: ‹‹ x ‹‹ плюс ‹‹ y ‹‹ img; return 0;``` Похоже, пользователю требуется ввести «+» в середине и «!» в конце... но я пробовал, все равно не работает.   -  person Genious28    schedule 30.10.2020
comment
ох, пропали табы в комментариях. :/   -  person Genious28    schedule 30.10.2020
comment
позвольте мне поставить этот код в качестве предлагаемого ответа ..   -  person Genious28    schedule 30.10.2020
comment
код в комментариях не читается. Если у вас есть вопрос о коде, вы должны опубликовать код в вопросе   -  person 463035818_is_not_a_number    schedule 30.10.2020
comment
я добавил ответ, который нашел в другом вопросе о стеке здесь ... в качестве предлагаемого ответа.   -  person Genious28    schedule 30.10.2020
comment
если это ответ, то ваш вопрос очень неясен. При записи Возможно ли вывести входное сообщение следующим образом? тогда я так понимаю, что следующие две строки должны появиться на экране до того, как пользователь что-то введет   -  person 463035818_is_not_a_number    schedule 30.10.2020
comment
Ну, это невозможно сделать с C++ в консоли. И, очевидно, я не могу сделать так, чтобы он отображался шаг за шагом, как в презентациях PowerPoint. Разработчикам StackOverFlow, вероятно, следует добавить эту функцию. В любом случае, извините за неудобства и путаницу.   -  person Genious28    schedule 30.10.2020
comment
все возможно. Серьезно, это можно сделать, просто не так просто.   -  person 463035818_is_not_a_number    schedule 30.10.2020
comment
Да, но это было бы ОЧЕНЬ длинно и содержало бы утверждения, которым книга не научила в первых двух главах.   -  person Genious28    schedule 31.10.2020


Ответы (2)


Вот решение моей проблемы на случай, если кто-то еще с ней столкнется. Кредиты идут на @qPCR4vir

#include <iostream>
#include <conio.h>
#include <stdlib.h>

using namespace std;

main()
{   //This program encourages the user to perform a sum of two fractions.
    int N1, D1, N2, D2, N, D;
    char divide{};
    system("cls");

    cout<<"The Format is: 'A/B' & 'C/D'..\n\n";
    cout<<"Enter First Fraction: ";
    cin>>N1>>divide>>D1;
    cout<<"Enter Second Fraction: ";
    cin>>N2>>divide>>D2;
    
    if (divide=='/')
    {
        N=(N1*D2)+(D1*N2);  //Numerator
        D=D1*D2;            //Denominator
        cout<<"Sum of Both Fractions is: "<<N<<"/"<<D;
    }
    else
    {
        system("cls");
        cout<<"The Correct Format is: A/B & C/D\nWhere these alphabets are Integers..\n\n";
        cout<<"Example: 4/5";
    }

    getch();
    system("cls");
    return(0);
}

Вот часть кода, определяющая формат ТОЛЬКО для оператора 'cin'.

#include <iostream>
#include <stdlib.h>
#include <conio.h>

using namespace std;

int main() 
{
    char divide{};                  //iota{};
    int x{},y{};
    
    cout<<"Enter Dividion of Two Numbers (A/B): ";
    cin>>x>>divide>>y;              //>> iota;
                
    if (divide=='/')                //&& iota=='i') 
    {
                                    //x=(N1*D2)+(D1*N2);    //Numerator
                                    //y=D1*D2;              //Denominator
        cout<<"The Fractional Form is: "<<x<<"/"<<y;
    }
    else
    {
        system("cls");
        cout<<"The Correct Format is: A/B & C/D\nWhere these alphabets are Integers..\n\n";
        cout<<"Example: 4/5";
    }


    getch();
    return 0;
}

Примечание. Это упрощенное/модифицированное решение @qPCR4vir по адресу; Чтение в определенном формате с помощью cin

person Genious28    schedule 30.10.2020

Я видел этот код в другом вопросе о стеке.

#include <iostream>
using namespace std;

int main() 
{
    char plus{},img{};
    double x{},y{};
    cin>> x >> plus >> y >> img;
    if (plus!='+' || img!='i') 
        cout << "\nError: "<< "x=" << x <<", plus="  << plus <<", y="  << y <<", img="  << img;
    else
        cout << "\nComplex: " << x << plus << y << img;


    return 0;
}

Кажется, от пользователя требуется ввести «+» посередине и «!» в конце концов... но я пробовал, все равно не работает.

person Genious28    schedule 30.10.2020
comment
этот код ожидает, что пользователь введет что-то вроде 1.3 + 2.5, он имеет мало общего с тем, что вы спрашиваете - person 463035818_is_not_a_number; 30.10.2020
comment
о да.. правда. дай попробовать - person Genious28; 30.10.2020
comment
на самом деле это для ввода комплексного числа. Пользователь может ввести, например, 3.5 + 1.3 i, а затем код напечатает 3.5 + 1.3 i (или напечатает сообщение об ошибке, если пользовательский ввод был в неправильном формате) - person 463035818_is_not_a_number; 30.10.2020
comment
неясно, какое это имеет отношение к вашему вопросу. Если вы хотите, чтобы пользователь ввел дробь как 3 / 5, вы можете сделать это (я имею в виду, что пользователь вводит эти 5 символов, / не появляется на экране до того, как пользователь вводит его), но это не то, что вы задаете в вопросе - person 463035818_is_not_a_number; 30.10.2020
comment
да, теперь это работает, когда я добавил пробелы и следовал формату ... это именно то, что я хочу в своей программе. просто немного другой формат. - person Genious28; 30.10.2020
comment
хотя это университетское задание... и они еще не прикрыли это состояние. это еще один случай, когда я знаю основы до функций на C++: D - person Genious28; 30.10.2020
comment
Вы уверены, что это то, о чем вас спрашивает задание? Мне кажется довольно странным, что ваш учитель спрашивал вас о чем-то подобном, не рассказав вам сначала об if утверждениях. - person John Doe; 30.10.2020
comment
НУ-У-У-У... ???????????????? Он попросил сделать задание из контрольных вопросов в конце справочника, за которым мы следим. - person Genious28; 30.10.2020