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

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

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

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

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

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

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

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

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

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

Заранее всем спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2011, 16:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разбор строки из консоли и вопрос по g++ (C++):

Разбор строки - C++
Помогите разобрать вот такие строки: 2011/07/01 22:08:29 1 104725943 127.0.0.1 a4c58fa5aa21a67deceaa8420802346e aaaaaa bbbbbb ...

Разбор строки - C++
Здравствуйте. В stdin программы приходит строка вида domain=d.ru&type=delete&file=std&... При этом мне необходимо получить значение...

Консоль, разбор командной строки - C++
#include <iostream> int main(int ArgumentsCount, char **Arguments) { char **p; char **l; std::cout<<ArgumentsCount<<std::endl;...

Разбор аргументов командной строки - C++
Для Unix существуют специальные средства для разбора опций командной строки (функции GNU getopt и getopt_long). Хотелось бы узнать, есть ли...

Разбор строки через цикл - C++
Здравствуйте. Хочу сделать программу, которая заменяет букву в строке на иной символ. Пользователь вводит произвольный текст в строку text....

Разбор сложной строки с аргументами - C++
Здравствуйте друзья! Мне кажеться я заблудился в этой жизни(( В мою длл через пайп поступает строка, а точнее комманда на чтение или...

11
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
05.03.2011, 16:24 #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;
}
1
romex
44 / 44 / 4
Регистрация: 11.04.2010
Сообщений: 223
05.03.2011, 16:28 #3
И еще - если можно, то дайте краткий гид по опциям компилятора g++
На линуксе в консоли
man g++

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

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

Так теперь поговорим про разбор строки. А если у меня на входе строка вида "1, 2, 3"?
0
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
05.03.2011, 23:03 #7
Цитата Сообщение от Си маньяк %) Посмотреть сообщение
Так теперь поговорим про разбор строки. А если у меня на входе строка вида "1, 2, 3"?
См. пост #2
0
Evg
Эксперт CАвтор FAQ
17931 / 6155 / 408
Регистрация: 30.03.2009
Сообщений: 16,905
Записей в блоге: 27
05.03.2011, 23:27 #8
Цитата Сообщение от Си маньяк %) Посмотреть сообщение
А если у меня на входе строка вида "1, 2, 3"?
Аргументы разделяются пробелами. Если запустишь

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

а если

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

Я хочу взять строку из консоли (cin) и распределить ее по переменным. Покажите 2 примера ("1 2 3" и "1, 2, 3"). Буду вам очень признателен.
0
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
06.03.2011, 09:31 #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
1
Evg
Эксперт CАвтор FAQ
17931 / 6155 / 408
Регистрация: 30.03.2009
Сообщений: 16,905
Записей в блоге: 27
06.03.2011, 11:53 #11
Цитата Сообщение от Си маньяк %) Посмотреть сообщение
Я хочу взять строку из консоли (cin) и распределить ее по переменным. Покажите 2 примера ("1 2 3" и "1, 2, 3"). Буду вам очень признателен.
В первом посте ты писал "Скоро будут олимпиады по информатике". Мой тебе совет - не ходи туда, не позорься
0
Си маньяк %)
1 / 1 / 0
Регистрация: 05.03.2011
Сообщений: 11
06.03.2011, 12:34  [ТС] #12
Ну вообще-то и я тоже могу оскорбить... если захочу. Можешь не переживать, я занял 2 место на олимпиаде (Москва и Московская область) в прошлом году. Программировал на Паскале и VB.NET. А вопрос свой я задал в "C/C++ для начинающих" не просто так... C++ я начал изучать всего 4 дня назад. Если хочется повы...еживаться, то найди другую ветку, Evg...

Добавлено через 1 минуту
asics и igorrr37, спасибо за листинги! Очень пригодились. Больше вопросов не имею.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2011, 12:34
Привет! Вот еще темы с ответами:

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

Интерпретатор выражений с переменной(разбор и анализ строки)) - C++
Может у кого есть библиотечка по данному сабжу? В идеале надо чтобы пользователь мог вводить любую функцию y=f(x) и для любого значения...

Перебор строки в консоли - C++
Здравствуйте. Суть проблемы: Требуется написать эмулятор командной строки Linux, т.е. набор команд с ключами (напр. ls -1 D:\) ...

Очистка строки в консоли - C++
Привет) Проблемка: Мне нужно очищать не экран а одну строку, например при создании &quot;мигающей&quot; строки, как в этой теме -...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
06.03.2011, 12:34
Ответ Создать тему
Опции темы

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