Вопрос № 36083: Привет...
У меня следующий вопрос:
Пишу программму на С (под Linux), программа консольная, и при разных аргументах должна вести себя по разному...так вот, ни как не пойму как работать с argv[] функции main. Подскажите как например будет выгля...Вопрос № 36095: Привет...
Как передать в функцию аргументы argc и argv[] функции main в другую функцию...просто я делаю...и ниче не работает...код в приложении...
Объясните мне дураку...ну как работать с argv[]...
И еще КАК МОЖНО ПОЧИСТИТЬ ЭКРАН ????????...Вопрос № 36102: Здравствуте уважаемые эксперты!
Подскажите пожалуйста, как можно реализовать поиск в Memo....Вопрос № 36107: Приветствую, эксперты!
ВижлСи++ 6.
Как можно программно удалить папку на диске с потрохами? Т.е. внутри есть файлы и вложенные папки... Неужто по одному все удалять?...Вопрос № 36113: Ув. эксперты. Возникла проблема с stl (код внизу). Просто идиотизм какой-то! Это как-нибудь лечится? Среда - Visual Studio 2002....
Вопрос № 36.083
Привет...
У меня следующий вопрос:
Пишу программму на С (под Linux), программа консольная, и при разных аргументах должна вести себя по разному...так вот, ни как не пойму как работать с argv[] функции main. Подскажите как например будет выглядеть условие если второй аргумент ==третьему аргументу, то выйти...ну вобщем какоё нибудь пример по работе с аргументами...
И еще один вопрос: при вызове программы должен выводиться текст из фала:) ...как сделать чтобы перед этим зачищался экран???(а то мне приходится хитрить и считывать ничего размером в экран... с файла:))
Отправлен: 24.02.2006, 13:19
Вопрос задал: Denton (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Muad Dib
Здравствуйте, Denton!
По поводу аргументов командной строки:
if (argc > 1) {
int i;
for (i = 1; i< argc; ++i)
printf(" %s
", argv[i]);
}
Но как вы заметили большинство консольных программ используют достаточно сложный синтаксис с указанием разных опций, чтобы не проводить синтаксического разбора, используется функция getopt_long() соотвественный заголовочный файл - getopt.h. man-страница там подробная, с примерами - цитировать не буду.
Ответ отправил: Muad Dib (статус: 5-ый класс)
Отправлен: 24.02.2006, 13:43
Отвечает: EPDSota
Здравствуйте, Denton!
1. Условие будет выглядеть:
if( strcmp(argv[2],argv[3]) )exit(23);
Приложение:
--------- Открыть глаза навстречу солнцу
Ответ отправил: EPDSota (статус: Практикант)
Отправлен: 24.02.2006, 13:46
Ответ отправил: Mamont0001 (статус: 2-ой класс)
Отправлен: 24.02.2006, 20:05 Оценка за ответ: 5
Вопрос № 36.095
Привет...
Как передать в функцию аргументы argc и argv[] функции main в другую функцию...просто я делаю...и ниче не работает...код в приложении...
Объясните мне дураку...ну как работать с argv[]...
И еще КАК МОЖНО ПОЧИСТИТЬ ЭКРАН ??????????? ну должна же быть какая-то библиотчечная функция что-ли...раз уж в bash и в dos есть clean и cls :)
использовал mc+gcc
Приложение:
Отправлен: 24.02.2006, 18:13
Вопрос задал: Denton (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Muad Dib
Здравствуйте, Denton!
Берете любую книгу по С/С++ и смотрите как передавать массивы в функции. То что вы программируете под Линукс не освобождает от знания языка С++ как такового.
a1=&argv[1]; //и почему тут компилятор недоволен?
a2=&argv[2];//ну и тут то же
а что вы пытаетесь делать? Вы передаете функции указатель на массив - вернее указатель на первый элемент массива, для того чтобы вычислить argv[1] (первый элемент массива) к примеру вам нужно к указателю - указывающему на первый элемент, прибавить размер самого элемента.
Есть очень хороший бук: Хрестомания по программирования на С в UNIX на lib.ru например, там эти вещи оччень доступно разобраны. Не слушайте готовых решений - попытаейтесь разобраться сами.
Ответ отправил: Muad Dib (статус: 5-ый класс)
Отправлен: 24.02.2006, 18:42 Оценка за ответ: 5 Комментарий оценки: Полностью согласен...написал фигню...спасиба...
Отвечает: estiGi
Здравствуйте, Denton!
Вас уже поругали, поэтому я не буду :) Значит, с двумерными массивами разобрались :)
А очистить экран в консоли - есть такая функция, system. Кажись она все это умеет и выполняет консольные команды. Например:
system ("cls");
Ответ отправил: estiGi (статус: Студент)
Отправлен: 24.02.2006, 19:15 Оценка за ответ: 4
Вопрос № 36.102
Здравствуте уважаемые эксперты!
Подскажите пожалуйста, как можно реализовать поиск в Memo.
В папке C:\Новая папка (2) были еще паки и файлы в этих файлах. Удалилось все.
Ответ отправил: DoubleV (статус: 3-ий класс)
Отправлен: 24.02.2006, 23:20 Оценка за ответ: 5 Комментарий оценки: В МСДН по этому поводу загадочно так написано:
When used to delete a file, SHFileOperation will attempt to place the deleted file in the Recycle Bin. If you wish to delete a file and guarantee that it will not be placed in the Recycle Bin, use DeleteFile.
Я попробывал вроде работает... Напиши пожалуйста в личку при каких условиях не срабатывает. А
удалять мне надо файлы и папки мною же программно созданные.
Вопрос № 36.113
Ув. эксперты. Возникла проблема с stl (код внизу). Просто идиотизм какой-то! Это как-нибудь лечится? Среда - Visual Studio 2002.
Отвечает: DoubleV
Здравствуйте, Огурцов Павел Евгеньевич!
Ошибок тут нет, просто надо указать в getline каким символом заканчивать строку.
#include <windows.h>
#include <string>
#include <iostream>
using namespace std;
void main()
{
int num;
string s;
cin >> num;
getline(cin, s,'5');//После ввода '5' ввод закончится
}
p.s если не ввести '5', то enter будет переходить на новую строку и продолжать ввод
Ответ отправил: DoubleV (статус: 3-ий класс)
Отправлен: 24.02.2006, 22:37 Оценка за ответ: 4
Отвечает: Ataman N. N.
Здравствуйте, Огурцов Павел Евгеньевич!
Так напишите cin >> num >> s;
Ответ отправил: Ataman N. N. (статус: 8-ой класс)
Отправлен: 27.02.2006, 11:57