powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Функция ввода, вывода.. С++
21 сообщений из 21, страница 1 из 1
Функция ввода, вывода.. С++
    #33170755
Andrey_Ohotin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ.. чувствую себя полным ламером среди Вас.. но все же.. я только учусь.. хочу поскорей все освоить.. я наверно частенько буду здесь вопросы задавать... Надеюсь, что мне кто-нибудь будет отвечать, просто очень помощь нужна.. сейчас у меня такой вопрос. есть две стандартных функции:
char *gets(char *s); и int puts(const char *s) Так вот.. как работает вторая, я знаю, а вот как первая - не получается проверить..
Можете привести мне пример ее использования? не забывайте.. я только начинаю.. ))
Большоя спасибо! заранее ..
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33171404
q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
q
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
#include <stdio.h>

int main(int argc, char *argv[])
{
	printf("Hello, world\n");
	
	char xx [ 100 ];

	gets(xx);
    
	printf("%s\n", xx);
	
	return  0 ;
}


------------





C:\q>cl Noname3.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

Noname3.cpp
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:Noname3.exe
Noname3.obj

C:\q>Noname3.exe
Hello, world
ssssssssssssssssssssssssssssssss
ssssssssssssssssssssssssssssssss

C:\q>
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33171410
q
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
q
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
#include <stdio.h>

int main(int argc, char *argv[])
{
    char xx [ 100 ];
	printf("%s\n", 	gets(xx));
	
	return  0 ;
}
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33171449
Andrey_Ohotin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо!!!!
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33171490
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
#include <stdio.h>

int main(int argc, char *argv[])
{
    char xx [ 100 ];
	printf("%s\n", 	gets(xx));
	
	return  0 ;
}
]
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
#include <stdio.h>

int main(int argc, char *argv[])
{
	printf("%s\n", 	gets(new char[ 100 ]));
	
	return  0 ;
}
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33171522
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас
Код: plaintext
1.
2.
3.
4.
5.
6.
int main(int argc, char *argv[])
{
	printf("%s\n", 	gets(new char[ 100 ]));
	
	return  0 ;
}


Бонус за функиональный подход.

P.S. Никто проверку от переполнения буфера не поставил. Больно мне... больно...
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33171534
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton wrote:

> P.S. Никто проверку от переполнения буфера не поставил. Больно мне...
> больно...
А че её ставить-то?
Код: plaintext
1.
2.
3.
4.
5.
  int main(int argc, char *argv[])
  {
	printf("%s\n", 	fgets(new char[ 100 ],  100 , stdin));
	return  0 ;
  }

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33171570
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
int main(int argc, char *argv[])
  {
	return printf("%s\n", 	fgets(new char[ 100 ],  100 , stdin));
  }
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33171574
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, тут вот ошибочка маленькая вкралась, надо так:
Код: plaintext
1.
2.
3.
4.
int main(int argc, char *argv[])
  {
	return printf("%s\n", 	fgets(new char[ 101 ],  100 , stdin));
  }
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33171712
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас

А что, в C++ уже garbage collector появился?
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33171801
Andrey_Ohotin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вы смотрю конкурс устроили... ))) у кого функциональней... )))
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33172353
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri Карабас Барабас
А что, в C++ уже garbage collector появился?хорошо, тогда так:
Код: plaintext
1.
2.
3.
4.
5.
int main(int argc, char *argv[])
{
  return printf("%s\n", fgets(argv[ 0 ]=new char[ 101 ],  100 , stdin))+((delete argv[ 0 ]), 0 );
}
правда порядок тут надо бы уточнить ... а то вдруг delete вперед вызовется, чем new :))
[/quot]
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33172490
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriА что, в C++ уже garbage collector появился?
помоему когда программа завершается, все распределенные ей ресурсы и выделенная память должна освобождаться.
По кр. мере на XP через taskmgr ( диспетчер задач ) видно что память возвращается.
Или я неправ?
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33172494
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanek842 funikovyuriА что, в C++ уже garbage collector появился?
помоему когда программа завершается, все распределенные ей ресурсы и выделенная память должна освобождаться.
По кр. мере на XP через taskmgr ( диспетчер задач ) видно что память возвращается.
Или я неправ?Прав, и не только на ХР, на всех виндах. Как в *nix - сказать не могу, не работал.

Просто некрасиво оставлять неосвобожденную память.
Кстати, наверное самый "красивый" вариант (порядок я проверил, на BCB5 правильно всё):
Код: plaintext
1.
2.
3.
4.
int main(int argc, char *argv[])
{
  return printf("%s\n", fgets(argv[ 0 ]=new char[ 101 ],  100 , stdin)),(delete argv[ 0 ]), 0 ;
}
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33172598
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanek842
...


Санек прав. В данном случае - ОС позаботится о сборке мусора.
Но если бы этот код стоял не в методе main а в функции
которая работает циклически, автономно и в режиме сервера
то ... мне даже страшно представить
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33172745
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Санек прав. В данном случае - ОС позаботится о сборке мусора

В чем прав? Такие примеры давать новичкам - наверное чтобы они потом выясняли откуда у них утечка памяти, ведь они используют "правильный" код... imho нужно писать так как надо, а не так как можно в данном конкретном учебном случае... Выделенную память нужно освобождать!
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33173131
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да, в реале я бы тоже явно delete сделал
Просто тут захотелось сделать "покороче", так вот отсюда вся и конитель ...
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33173398
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и совсем задница если вот так вот привыкнет человек и какие нить системные ресурсы забудет освобождать...для 95, 98 - это писец...причём не сразу... агония будет правда не долгой, но красивой :)


с уважением
(круглый)
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33173420
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расшумелись !
Что не удаляет этот код:
Код: plaintext
1.
2.
3.
int main(int argc, char *argv[])
{
  return printf("%s\n", fgets(argv[ 0 ]=new char[ 101 ],  100 , stdin)),(delete argv[ 0 ]), 0 ;
}
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33173561
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас

Главный вопрос - причем тут этот код? Мы другой обсуждаем...
...
Рейтинг: 0 / 0
Функция ввода, вывода.. С++
    #33173569
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriГлавный вопрос - причем тут этот код? Мы другой обсуждаем...а ну тогда ладно.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Функция ввода, вывода.. С++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]