int main(int argc, char **argv, char *envp)
{
int i;
for(i = 1; i < argc; i++) // argv[0] нас не интересует, потому что это имя exe-шника
cout << argv << endl; // выводим параметры по одному в строке
}
Функция MAIN()
char **string;
Кто знает, как из этого массива извлечь значения строк (у меня их должно быть две)?
Код:
Кнопка F1 здесь рулит как никогда.
И в продолжении темы: если мне не нужен третий параметр, который принимает ф-ция main (char *envp) (я вообще не знаю зачем он нужен), его можно просто не писать?
И ещё: как считать с файла матрицу чисел (я думала, сначала как строку, а потом разбить её на цифры - но это долго, а можно ли как нибудь полегче)?
fscanf(file,"%f",&f) + вложенный цикл + кнопка F1, и будет вам счастье
for(i = 1; i < argc; i++) // argv[0] нас не интересует, потому что это имя exe-шника
[/QUOTE]
в общем случае это имя исполняемого файла - не обязательно exe-шника. Хотя в Borland C++ Builder всеже так =)
Цитата:
И ещё: как считать с файла матрицу чисел (я думала, сначала как строку, а потом разбить её на цифры - но это долго, а можно ли как нибудь полегче)?
Вобще всетаки лучше считывать сразу побольше - ну хотябы целиком строку, если она достаточно большая.
Во первых обращение к диску (файлу) медленная операция, намного медленней чем обращение к строке в памяти. И потом полно полезных функций который помогут разобрать строку.
И в продолжении темы: если мне не нужен третий параметр, который принимает ф-ция main (char *envp) (я вообще не знаю зачем он нужен), его можно просто не писать?
И ещё: как считать с файла матрицу чисел (я думала, сначала как строку, а потом разбить её на цифры - но это долго, а можно ли как нибудь полегче)?[/QUOTE]
1) Можно. А можно строкой выше добавить: #pragma argsused
2) Можно, как предложил(а) Hydra, fscanf() в цикле, если значения разделены, скажем, запятой, а можно лениво поразбивать приблизительно так:
Код:
TStringList *all = new TStringList;
all->LoadFromFile("...");
TStringList *dell = new TStringList;
dell->DelimitedText = all->Text;
int l = dell->Count;
double double_array = new double[l];
for(int i = 0; i < l; i++)
double_array = dell->Strings.ToDouble();
delete dell;
delete all;
all->LoadFromFile("...");
TStringList *dell = new TStringList;
dell->DelimitedText = all->Text;
int l = dell->Count;
double double_array = new double[l];
for(int i = 0; i < l; i++)
double_array = dell->Strings.ToDouble();
delete dell;
delete all;
и дальше используем дабловый массив.
Код не тестировал, поэтому возможны ошибки.
Всем спасибо, сейчас попробую, посмотрю, что получится!