5 / 5 / 0
Регистрация: 07.07.2010
Сообщений: 80
1

Не сразу закрывающаяся программа

09.07.2010, 22:23. Показов 1273. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть команды в терминале.. вроде telnet или sql, эти программы запускаешь и они остаются открытыми пока не дашь команду, например, quit. Во время работы программы она показывает знак приглашения новой команды ">". Как это можно осуществить в C++?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2010, 22:23
Ответы с готовыми решениями:

Консольная программа запускается и сразу закрывается
Есть программа, ее компиляции проходит нормально никаких ошибок нет, но как только она запускается...

Программа сразу завершается
Здравствуйте! Я написал программу с конфигурацией решения Release, при запуске exe-файла программа...

Почему программа сразу закрывается ?
#include <iostream> using namespace std; int main (void) { int age; cout << "Enter you...

Программа сразу после ввода закрывается
Ввела код { int buf; int a; int n,i; cin >> n; for (int i=0; i<n; i++) {...

8
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12222 / 7354 / 1730
Регистрация: 25.07.2009
Сообщений: 13,461
09.07.2010, 22:57 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
 
int main(void){
    char buf[BUFSIZ];
    /* прочие переменные... */
    
    while ( 1 ){
        printf("> ");
        scanf("%s", buf);
        if ( ! strcmp(buf, "quit") || ! strcmp(buf, "QUIT") )
            break;
        printf("Processing command %s\n", buf);
    }
    
    return 0;
}
1
5 / 5 / 0
Регистрация: 07.07.2010
Сообщений: 80
10.07.2010, 00:51  [ТС] 3
Спасибо.. прекрасно!

А строчку "char buf[BUFSIZ];" можно в двух словах объяснить?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12222 / 7354 / 1730
Регистрация: 25.07.2009
Сообщений: 13,461
10.07.2010, 01:01 4
Цитата Сообщение от Alexoy Посмотреть сообщение
А строчку "char buf[BUFSIZ];" можно в двух словах объяснить?
BUFSIZ - константа, объявленная в stdio.h, соответственно
C
1
char buf[BUFSIZ];
массив символов заведомо (я бы даже сказал - излишне) достаточного размера для хранения строки, содержащей введённую команду.
На всякий случай: в таком виде оно только, как учебный пример, жить может. В реальных приложениях всегда нужно следить за количеством символов, передаваемых в массив (fgets(), strncpy, etc...)
0
5 / 5 / 0
Регистрация: 07.07.2010
Сообщений: 80
10.07.2010, 01:12  [ТС] 5
т.е. если просто написать "buf[10]" потом "больно" не будет?! Работает.. вижу) . Ты про переполнение буфера и подобное?!
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12222 / 7354 / 1730
Регистрация: 25.07.2009
Сообщений: 13,461
10.07.2010, 01:38 6
Цитата Сообщение от Alexoy Посмотреть сообщение
Ты про переполнение буфера и подобное?!
ну да...
0
5 / 5 / 0
Регистрация: 07.07.2010
Сообщений: 80
10.07.2010, 01:45  [ТС] 7
А можно без scanf()? мне бы на argv[] лучше перейти как-нибудь. но так почему-то только argv[0] есть с названием команды. если сказать вывести argv[1], то выдаёт

terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct NULL not valid
Aborted (core dumped)
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12222 / 7354 / 1730
Регистрация: 25.07.2009
Сообщений: 13,461
10.07.2010, 01:51 8
Цитата Сообщение от Alexoy Посмотреть сообщение
А можно без scanf()? мне бы на argv[] лучше перейти как-нибудь.
Минуточку! **argv содержит массив строк, переданных программе в качестве параметров. Чего же тогда программа ждать-то должна? Вот прям рядом тема про argv argc и иже с ними https://www.cyberforum.ru/cpp/thread152233.html
0
5 / 5 / 0
Регистрация: 07.07.2010
Сообщений: 80
12.07.2010, 22:05  [ТС] 9
Да да.. это моя тема и была) тогда как осуществить поддержку ключей внутри теперешней программы?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2010, 22:05
Помогаю со студенческими работами здесь

Программа сворачивается сразу же после выполнения
Есть система из трех уравнений, программа написана. Почему при вводе x=0 , y=0 окно вывода сразу...

Программа закрывается сразу после отработки
программа готова. Запускаю компилятор. Программа выполнена правильно, но окно сразу же закрывается!...

Программа вылетает сразу же после запуска
Доброго всем времени суток. Начал писать программу с двумерным массивом. Еще не прописал ни одного...

Должна ли программа закрываться сразу после открытия?
Решил изучать С++ (Посоветовал знакомый программист). Начал с прочтения Шилдта &quot;С++. Базовый курс&quot;....


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru