Как сделать так, чтобы после cin программа в консоли оставалась на одной строке, а не переходила на другую?
если несколько переменных хочешь ввести в одну строку, то так: cin >> a >> b... >> n; а вот если хочешь, чтобы программа продолжила выполняться с этой же строки, то можно через костыль, например, так: int a; cout << "Введите a: "; cin >> a; system("cls");//от ОС зависит, на винде cls cout << "Введите а: " << a; Code int a; cout << "Введите a: "; cin >> a; system("cls");//от ОС зависит, на винде cls cout << "Введите а: " << a;
Найс гуглишь капитан... А теперь приведи мне пример с этой функцией для ввода и вывода сразу двух переменных на одной строке.
какой гугл блять. я сказал то, что первым пришло в голову, сделай - ка мне так, а не пизди. вывод же будет таким (который он хотел)? строго по т. з. как говорится.) The post was merged to previous Aug 25, 2019 int a, b; cout << "Введите a и b: "; cin >> a >> b; system("cls"); cout << "Введите а и b: " << a << b; Code int a, b; cout << "Введите a и b: "; cin >> a >> b; system("cls"); cout << "Введите а и b: " << a << b; The post was merged to previous Aug 25, 2019 XD, щас загуглил, реально такое же решение нашёл. радует, что кто-то мыслит, как я или я, как кто-то.. стоп, а нахуя ты гуглил тогда, умник? getch(), кстати, тоже как вариант
Ну, как сказать, хз.. В общем если чуть пораскинуть мозгами, то можно че-то такое напилить: Это если в убогой виндовой консольке, без особого использования винапи, доп. либ (в т.ч. ncurses), ну и не для *никсовских систем. Кот: #include <cstring> #include <stdio.h> #include <assert.h> #include <windows.h> #include <conio.h> COORD GetConsoleCursorPosition(HANDLE hConsoleOutput) noexcept { assert(hConsoleOutput && "must be non-nullptr"); CONSOLE_SCREEN_BUFFER_INFO cbsi; if (GetConsoleScreenBufferInfo(hConsoleOutput, &cbsi)) { return cbsi.dwCursorPosition; } return COORD{}; } template <typename T = char> struct Input { T buffer_[32]; T* iterator_; Input() noexcept : buffer_{}, iterator_{nullptr} { if (!fgets(buffer_, sizeof buffer_, stdin)) return; iterator_ = buffer_; } template <typename U> void read(U& value) noexcept { T result = 0; for ( ; *iterator_ && '\n' != *iterator_; iterator_++) { if (' ' == *iterator_) { iterator_++; break; } result = result * 10 + *iterator_ - '0'; } value = result; } std::size_t size() noexcept { return strlen(buffer_); } }; int main() { int x = 0; int y = 0; printf("Enter x and y: "); COORD saved_cursor_position = GetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE)); Input<char> in; in.read(x); in.read(y); saved_cursor_position.X += in.size(); SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), saved_cursor_position); printf(", Sum = %d", x + y); } Code #include <cstring> #include <stdio.h> #include <assert.h> #include <windows.h> #include <conio.h> COORD GetConsoleCursorPosition(HANDLE hConsoleOutput) noexcept { assert(hConsoleOutput && "must be non-nullptr"); CONSOLE_SCREEN_BUFFER_INFO cbsi; if (GetConsoleScreenBufferInfo(hConsoleOutput, &cbsi)) { return cbsi.dwCursorPosition; } return COORD{}; } template <typename T = char> struct Input { T buffer_[32]; T* iterator_; Input() noexcept : buffer_{}, iterator_{nullptr} { if (!fgets(buffer_, sizeof buffer_, stdin)) return; iterator_ = buffer_; } template <typename U> void read(U& value) noexcept { T result = 0; for ( ; *iterator_ && '\n' != *iterator_; iterator_++) { if (' ' == *iterator_) { iterator_++; break; } result = result * 10 + *iterator_ - '0'; } value = result; } std::size_t size() noexcept { return strlen(buffer_); } }; int main() { int x = 0; int y = 0; printf("Enter x and y: "); COORD saved_cursor_position = GetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE)); Input<char> in; in.read(x); in.read(y); saved_cursor_position.X += in.size(); SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), saved_cursor_position); printf(", Sum = %d", x + y); } The post was merged to previous Aug 25, 2019 #include <cstring> #include <stdio.h> #include <assert.h> #include <windows.h> #include <conio.h> #include <type_traits> COORD GetConsoleCursorPosition(HANDLE hConsoleOutput) noexcept { assert(hConsoleOutput && "must be non-nullptr"); CONSOLE_SCREEN_BUFFER_INFO cbsi; if (GetConsoleScreenBufferInfo(hConsoleOutput, &cbsi)) { return cbsi.dwCursorPosition; } return COORD{}; } struct Input { typedef char input_type; typedef input_type* iterator; input_type buffer_[32]; iterator iterator_; Input() noexcept : buffer_{}, iterator_{nullptr} { if (!fgets(buffer_, sizeof buffer_, stdin)) return; iterator_ = buffer_; } template <typename Integer, std::enable_if_t<std::is_integral_v<Integer>, Integer> = 0> void read(Integer& value) noexcept { Integer result = 0; for ( ; *iterator_ && '\n' != *iterator_; iterator_++) { if (' ' == *iterator_) { iterator_++; break; } result = result * 10 + *iterator_ - '0'; } value = result; } std::size_t size() noexcept { return strlen(buffer_); } }; int main() { int x = 0; int y = 0; printf("Enter x and y: "); COORD saved_cursor_position = GetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE)); Input in; in.read(x); in.read(y); saved_cursor_position.X += in.size(); SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), saved_cursor_position); printf(", Sum = %d", x + y); } Code #include <cstring> #include <stdio.h> #include <assert.h> #include <windows.h> #include <conio.h> #include <type_traits> COORD GetConsoleCursorPosition(HANDLE hConsoleOutput) noexcept { assert(hConsoleOutput && "must be non-nullptr"); CONSOLE_SCREEN_BUFFER_INFO cbsi; if (GetConsoleScreenBufferInfo(hConsoleOutput, &cbsi)) { return cbsi.dwCursorPosition; } return COORD{}; } struct Input { typedef char input_type; typedef input_type* iterator; input_type buffer_[32]; iterator iterator_; Input() noexcept : buffer_{}, iterator_{nullptr} { if (!fgets(buffer_, sizeof buffer_, stdin)) return; iterator_ = buffer_; } template <typename Integer, std::enable_if_t<std::is_integral_v<Integer>, Integer> = 0> void read(Integer& value) noexcept { Integer result = 0; for ( ; *iterator_ && '\n' != *iterator_; iterator_++) { if (' ' == *iterator_) { iterator_++; break; } result = result * 10 + *iterator_ - '0'; } value = result; } std::size_t size() noexcept { return strlen(buffer_); } }; int main() { int x = 0; int y = 0; printf("Enter x and y: "); COORD saved_cursor_position = GetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE)); Input in; in.read(x); in.read(y); saved_cursor_position.X += in.size(); SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), saved_cursor_position); printf(", Sum = %d", x + y); } The post was merged to previous Aug 25, 2019 Ебал рот данного сайта, даже отрекдактировать нормально сообщение нельзя, ну жрите тогда как есть.. Последние поправки к коду: #include <cstring> #include <stdio.h> #include <assert.h> #include <windows.h> #include <conio.h> #include <type_traits> COORD GetConsoleCursorPosition(HANDLE hConsoleOutput) noexcept { assert(hConsoleOutput && "must be non-nullptr"); CONSOLE_SCREEN_BUFFER_INFO cbsi; if (GetConsoleScreenBufferInfo(hConsoleOutput, &cbsi)) { return cbsi.dwCursorPosition; } return COORD{}; } struct Input { typedef char input_type; typedef input_type* iterator; input_type buffer_[32]; iterator iterator_; Input() noexcept : buffer_{}, iterator_{nullptr} { if (!fgets(buffer_, sizeof buffer_, stdin)) return; iterator_ = buffer_; } template <typename Integer, std::enable_if_t<std::is_integral_v<Integer>, Integer> = 0> void read(Integer& value) noexcept { Integer result = 0; for ( ; *iterator_ && '\n' != *iterator_; iterator_++) { if (' ' == *iterator_) { iterator_++; break; } result = result * 10 + *iterator_ - '0'; } value = result; } std::size_t size() noexcept { return strlen(buffer_); } }; int main() { int x = 0; int y = 0; printf("Enter x and y: "); COORD saved_cursor_position = GetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE)); Input in; in.read(x); in.read(y); saved_cursor_position.X += in.size(); SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), saved_cursor_position); printf(", Sum = %d", x + y); } Code #include <cstring> #include <stdio.h> #include <assert.h> #include <windows.h> #include <conio.h> #include <type_traits> COORD GetConsoleCursorPosition(HANDLE hConsoleOutput) noexcept { assert(hConsoleOutput && "must be non-nullptr"); CONSOLE_SCREEN_BUFFER_INFO cbsi; if (GetConsoleScreenBufferInfo(hConsoleOutput, &cbsi)) { return cbsi.dwCursorPosition; } return COORD{}; } struct Input { typedef char input_type; typedef input_type* iterator; input_type buffer_[32]; iterator iterator_; Input() noexcept : buffer_{}, iterator_{nullptr} { if (!fgets(buffer_, sizeof buffer_, stdin)) return; iterator_ = buffer_; } template <typename Integer, std::enable_if_t<std::is_integral_v<Integer>, Integer> = 0> void read(Integer& value) noexcept { Integer result = 0; for ( ; *iterator_ && '\n' != *iterator_; iterator_++) { if (' ' == *iterator_) { iterator_++; break; } result = result * 10 + *iterator_ - '0'; } value = result; } std::size_t size() noexcept { return strlen(buffer_); } }; int main() { int x = 0; int y = 0; printf("Enter x and y: "); COORD saved_cursor_position = GetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE)); Input in; in.read(x); in.read(y); saved_cursor_position.X += in.size(); SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), saved_cursor_position); printf(", Sum = %d", x + y); } The post was merged to previous Aug 25, 2019 Даже, блядь, отступы перекосило, да еб..
de9x, не хочу хвастаться, но я это где-то минут за 15 накидал, учитывая что ещё гуглил немног доку по винапи ф-ях, ато уже подзабыл много)