Зачастую пары строчек достаточно для того, чтобы направить новичка в нужное русло. А K&R своей толщиной напротив может отпугнуть. Если твой опыт в программировании стремится к нулю, в ней трудно сориентироваться.
Ну, Михаил, для этих целей следует использовать не system(), а специальную библиотечную функцию time().
Тут это рассматривается подробно, но для C++. Строго говоря, для описанного Вами случая второй указатель (а это именно указатель, почитайте про них, без них в Си никуда) даже и не нужен. Мы объявляем один указатель на char, присваиваем ему значение возвращаемое функцией asctime() (о ней по ссылке), и после этого можем использовать синтаксис с квадратными скобками, а-ля обращение к элементам массива.
Чтобы массив b был именно массивом, а не одиночным чаром, необходимо объявить его как массив, т.е. напр. char a, b[10]; Это если мы знаем кол-во элементов. Присваивание тогда должно происходить какому-то конкретному элементу, т.е. b[0]=a; а не b[]=a; Вообще, не могли бы вы разъяснить смысл прграммы? Функция system возвращает код завершения типа int, который мы неявно преобразуем в char, но это ладно. Зачем нам записывать его в массив и что должно быть в его оставшихся элементах?
Михаил, не очень понятно. выводящая = возвращающая? Если да, то возвращает он чар или указатель на чар (char*)? Если первое, то поподробнее про преобразование в массив, если можно. Если второе, то преобразовывать ничего и не надо, нужно только позаботиться, чтобы функция возвращала указатель на массив достаточного размера.
Здравствуйте, извините, си начал изучать недавно, появились вопросы. Задам пока только 1: имеется функция, выводящая значение типа чар. Надо присвоить другой переменной вывод этой функции и преобразовать его в массив, чтобы отдельно к каждому элемента можно было обратиться. Заранее спасибо. Извините, если описал непонятно.
С огромной радостью хочу сообщить Вам, что открывается новый набор на семинары по программированию для начинающих разработчиков. Если Вам интересно идти в ногу с современными IT-технологиями, узнать что-то новое для себя, сделать вклад в свою будущую карьеру, то Вам обязательно нужно сделать первый шаг.
На сегодняшний день открыт набор на семинары по следующим направлениям:
• Основы разработки на платформе Microsoft .NET. Язык программирования C#.
Уровень знаний, необходимый для участия в указанных семинарах - минимальный. Для того, чтобы успешно освоить материал и начать применять полученные знания в реальной практике необходимо иметь лишь мотивацию, желание получать знания и ориентацию на результат.
Все мероприятия проводятся в хорошо оснащенных компьютерных классах. Для получения более подробной информации Вы можете связаться с нами по телефону +7(495)9732041, либо через e-mail: info@. Количество участников ограничено.
Февраль 27th, 2010 at 15:10
Зачастую пары строчек достаточно для того, чтобы направить новичка в нужное русло. А K&R своей толщиной напротив может отпугнуть. Если твой опыт в программировании стремится к нулю, в ней трудно сориентироваться.
Февраль 27th, 2010 at 5:58
Но ведь эта группа для того и созданна, чтобы помогать.
Февраль 27th, 2010 at 5:31
Есть замечательная книга Кернигана и Ритчи…таких бы вопросов не было…
Февраль 26th, 2010 at 23:00
Не за что, будут вопросы - пишите
Февраль 26th, 2010 at 16:15
man asctime тоже дало много интересного.
Февраль 26th, 2010 at 16:14
Огромное спасибо Вам, Алексей.
Почитал, разобрался, понял что велосипед изобретать не надо, а все уже давно изобретено. =)
Февраль 26th, 2010 at 14:00
Ну, Михаил, для этих целей следует использовать не system(), а специальную библиотечную функцию time().
Тут это рассматривается подробно, но для C++.
Строго говоря, для описанного Вами случая второй указатель (а это именно указатель, почитайте про них, без них в Си никуда) даже и не нужен. Мы объявляем один указатель на char, присваиваем ему значение возвращаемое функцией asctime() (о ней по ссылке), и после этого можем использовать синтаксис с квадратными скобками, а-ля обращение к элементам массива.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
char *a;
short n;
time_t seconds = time(NULL);
tm* timeinfo = localtime(&seconds);
a = asctime(timeinfo);
for(n=0;n!='\0';++n)
printf("%c\n",a[n]);
return 0;
}
Февраль 26th, 2010 at 4:08
Мне просто хотелось "выдернуть" дату, а потом расписать ее посимвольно
Февраль 25th, 2010 at 20:06
Чтобы массив b был именно массивом, а не одиночным чаром, необходимо объявить его как массив, т.е. напр.
char a, b[10];
Это если мы знаем кол-во элементов.
Присваивание тогда должно происходить какому-то конкретному элементу, т.е.
b[0]=a;
а не
b[]=a;
Вообще, не могли бы вы разъяснить смысл прграммы? Функция system возвращает код завершения типа int, который мы неявно преобразуем в char, но это ладно. Зачем нам записывать его в массив и что должно быть в его оставшихся элементах?
Февраль 25th, 2010 at 19:40
Надо чтобы к элементам массива b можно было обращаться как b[0] и т.д.
Февраль 25th, 2010 at 19:38
В общем как-то так, Алексей:(код естественно нерабочий)
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a,b;
a=system("date");
b[]=a;
printf("%c", b[0]);
return 0;
}
Извините за мои, возможно, кривые руки.
Февраль 25th, 2010 at 18:55
Михаил, не очень понятно.
выводящая = возвращающая?
Если да, то возвращает он чар или указатель на чар (char*)?
Если первое, то поподробнее про преобразование в массив, если можно.
Если второе, то преобразовывать ничего и не надо, нужно только позаботиться, чтобы функция возвращала указатель на массив достаточного размера.
Февраль 25th, 2010 at 16:18
Здравствуйте, извините, си начал изучать недавно, появились вопросы. Задам пока только 1: имеется функция, выводящая значение типа чар. Надо присвоить другой переменной вывод этой функции и преобразовать его в массив, чтобы отдельно к каждому элемента можно было обратиться. Заранее спасибо.
Извините, если описал непонятно.
Февраль 23rd, 2010 at 17:22
Группа снова функционирует…
(ц)Кэп
Октябрь 29th, 2009 at 23:22
У кого есть чёткая программа с кряком Erwin 7.2 большая просьба кинуть ссылочку в личку!
Октябрь 21st, 2009 at 10:12
Семинары по программированию на Microsoft .NET
Добрый день, коллеги!
С огромной радостью хочу сообщить Вам, что открывается новый набор на
семинары по программированию для начинающих разработчиков. Если Вам
интересно идти в ногу с современными IT-технологиями, узнать что-то новое
для себя, сделать вклад в свою будущую карьеру, то Вам обязательно нужно
сделать первый шаг.
На сегодняшний день открыт набор на семинары по следующим направлениям:
• Основы разработки на платформе Microsoft .NET. Язык программирования C#.
Уровень знаний, необходимый для участия в указанных семинарах -
минимальный. Для того, чтобы успешно освоить материал и начать применять
полученные знания в реальной практике необходимо иметь лишь мотивацию,
желание получать знания и ориентацию на результат.
Все мероприятия проводятся в хорошо оснащенных компьютерных классах. Для
получения более подробной информации Вы можете связаться с нами по
телефону +7(495)9732041, либо через e-mail: info@. Количество
участников ограничено.
С уважением, Баринов Роман.
Сентябрь 13th, 2009 at 20:17
С праздником всех. Вот и на нашей улице праздник!.
Сентябрь 13th, 2009 at 9:15
Всех с праздником, товарищи!
Сентябрь 13th, 2009 at 1:11
Братья по клавиатуре, поздравляю всех с нашим праздником, впервые официально отмечающимся в стране! Удачи всем в нашем нелегком деле!
Август 29th, 2009 at 11:08
- Жопа Ницше. Погружение
4:04