Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Си маньяк %)
1 / 1 / 0
Регистрация: 05.03.2011
Сообщений: 11
#1

Разбор строки из консоли и вопрос по g++ - C++

05.03.2011, 16:09. Просмотров 1581. Ответов 11
Метки нет (Все метки)

Всем доброго времени суток :)

Недавно начал изучать C++ Вот есть пару вопросов...

Первое - Как мне разобрать строку из консоли (например: "1 2 3" или "1, 2, 3", а потом распределить все это добро по переменным). Желательно не быдлокодить :) Чем больше вариантов, тем лучше ;)

Второе - Скоро будут олимпиады по информатике. С компьютерами в некоторых школах проблемы (старые и зачуханные). К тому же в школах повсеместно устанавливается свободное ПО. Поэтому на них стоит линукс. Вопрос: достаточно ли "g++ main.cpp" в терминале для достойного результата? И еще - если можно, то дайте краткий гид по опциям компилятора g++ :)

P.S. - Поднял тему с линуксом так как сам на винде паганой сижу, пользуюсь Visual Studio 2010 C++ Express

Заранее всем спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
05.03.2011, 16:24     Разбор строки из консоли и вопрос по g++ #2
Цитата Сообщение от Си маньяк %) Посмотреть сообщение
Как мне разобрать строку из консоли (например: "1 2 3"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <sstream>
#include <string>
 
int main(){
  std::string str("1 2 3");
  int a, b, c;
  std::istringstream ist(str);
  ist >> str;
  a = str[0] - '0';
  ist >> str;
  b = str[0] - '0';
  ist >> str;
  c = str[0] - '0';
  std::cout << a << ' ' << b << ' ' << c;
  return 0;
}
romex
44 / 44 / 4
Регистрация: 11.04.2010
Сообщений: 223
05.03.2011, 16:28     Разбор строки из консоли и вопрос по g++ #3
И еще - если можно, то дайте краткий гид по опциям компилятора g++
На линуксе в консоли
man g++

А пока вам полезно будет знать опцию -o, сразу за ней имя файла, в который сохранится "'exe-шник"
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
05.03.2011, 16:32     Разбор строки из консоли и вопрос по g++ #4
Цитата Сообщение от Си маньяк %) Посмотреть сообщение
И еще - если можно, то дайте краткий гид по опциям компилятора g++
http://c2p.ru/c/griffits-a-gcc-polnoe-rukovodstvo.html
Evg
Эксперт CАвтор FAQ
17464 / 5702 / 361
Регистрация: 30.03.2009
Сообщений: 15,654
Записей в блоге: 26
05.03.2011, 17:32     Разбор строки из консоли и вопрос по g++ #5
http://www.cyberforum.ru/cpp/thread152233.html

GCC - компиляция C/C++ программ
Си маньяк %)
1 / 1 / 0
Регистрация: 05.03.2011
Сообщений: 11
05.03.2011, 23:00  [ТС]     Разбор строки из консоли и вопрос по g++ #6
Про g++ все понял, спасибо

Так теперь поговорим про разбор строки. А если у меня на входе строка вида "1, 2, 3"?
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
05.03.2011, 23:03     Разбор строки из консоли и вопрос по g++ #7
Цитата Сообщение от Си маньяк %) Посмотреть сообщение
Так теперь поговорим про разбор строки. А если у меня на входе строка вида "1, 2, 3"?
См. пост #2
Evg
Эксперт CАвтор FAQ
17464 / 5702 / 361
Регистрация: 30.03.2009
Сообщений: 15,654
Записей в блоге: 26
05.03.2011, 23:27     Разбор строки из консоли и вопрос по g++ #8
Цитата Сообщение от Си маньяк %) Посмотреть сообщение
А если у меня на входе строка вида "1, 2, 3"?
Аргументы разделяются пробелами. Если запустишь

Код
./a.out 1, 2, 3
то прийдёт 3 аргумента: "1," "2," "3"

а если

Код
./a.out "1, 2, 3"
то один аргумент "1, 2, 3". Дальше уже сам думай, тем более тебе тут готовое решение предлодили
Си маньяк %)
1 / 1 / 0
Регистрация: 05.03.2011
Сообщений: 11
06.03.2011, 08:55  [ТС]     Разбор строки из консоли и вопрос по g++ #9
Наверное сам виноват - не объяснил. Хотя способ, который мне предложили мне точно когда-нибудь пригодится

Я хочу взять строку из консоли (cin) и распределить ее по переменным. Покажите 2 примера ("1 2 3" и "1, 2, 3"). Буду вам очень признателен.
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
06.03.2011, 09:31     Разбор строки из консоли и вопрос по g++ #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include<sstream>
#include<cctype>
 
int main(){
    std::string s;
    int a, b, c;
    getline(std::cin, s);
    for(int i=0; i<s.size(); i++){
        if(!isdigit(s[i])) s[i]=' ';
    }
    std::stringstream ss(s);
    ss>>a>>b>>c;
    std::cout<<"a="<<a<<", b="<<b<<", c="<<c<<"\n";
}
// 34,5,67
Evg
Эксперт CАвтор FAQ
17464 / 5702 / 361
Регистрация: 30.03.2009
Сообщений: 15,654
Записей в блоге: 26
06.03.2011, 11:53     Разбор строки из консоли и вопрос по g++ #11
Цитата Сообщение от Си маньяк %) Посмотреть сообщение
Я хочу взять строку из консоли (cin) и распределить ее по переменным. Покажите 2 примера ("1 2 3" и "1, 2, 3"). Буду вам очень признателен.
В первом посте ты писал "Скоро будут олимпиады по информатике". Мой тебе совет - не ходи туда, не позорься
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2011, 12:34     Разбор строки из консоли и вопрос по g++
Еще ссылки по теме:
C++ Разбор командной строки\Вывод в файл координат
Перебор строки в консоли C++
C++ Ввод строки с консоли
C++ Очистка строки в консоли
Ввод строки с консоли C++

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

Или воспользуйтесь поиском по форуму:
Си маньяк %)
1 / 1 / 0
Регистрация: 05.03.2011
Сообщений: 11
06.03.2011, 12:34  [ТС]     Разбор строки из консоли и вопрос по g++ #12
Ну вообще-то и я тоже могу оскорбить... если захочу. Можешь не переживать, я занял 2 место на олимпиаде (Москва и Московская область) в прошлом году. Программировал на Паскале и VB.NET. А вопрос свой я задал в "C/C++ для начинающих" не просто так... C++ я начал изучать всего 4 дня назад. Если хочется повы...еживаться, то найди другую ветку, Evg...

Добавлено через 1 минуту
asics и igorrr37, спасибо за листинги! Очень пригодились. Больше вопросов не имею.
Yandex
Объявления
06.03.2011, 12:34     Разбор строки из консоли и вопрос по g++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru