HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

C++. Не пойму, почему такой код РАБОТАЕТ
  #1  
Старый 15.12.2009, 11:41
ZagZag
Участник форума
Регистрация: 22.02.2007
Сообщений: 213
С нами: 10113007

Репутация: 58
По умолчанию C++. Не пойму, почему такой код РАБОТАЕТ

Код:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
	char a[5];
  ReadString("Input: ", a);
	printf("Value: %s\n", a);
  system("PAUSE");
  return 0;
}

int ReadString(char *prompt, char *ret) {
	printf(prompt);
	scanf("%s", ret);
  fflush(stdin);
	return 0;
}
Всегда забываю, как грамотно делать хранение переменных в C++. Поэтому решил разобраться с этой темой подробно.
Пишу функцию для ввода строки из консоли (нужно для курсовика).
Алгоритм такой:
1. Объявить буфер для ввода, размером в максимально возможное значение.
2. Передать указатель на буфер в функцию.
3. В функции принять значение из консоли в буфер
4. Вывести значение из буфера в консоль.
Приведенный код работает, но даже тогда, когда вводится значение, длина которого превышает размер буфера.
Отсюда вопросы: я не понимаю как работает код? Или где тогда хранится оставшаяся часть введенной строки?
Объясните, просветите =)
Сильно не пинайте, ну не умею я еще в уме трассировать C++. Мне ведь самому интересно как он работает на самом деле.
А еще лучше ответьте как сделать ввод из консоли правильнее.
 
Ответить с цитированием
 



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имеется такой вод код одной из on-line игр! FAT PHP 4 09.09.2008 21:01
PHP Including FAQ kot777 Уязвимости 1 02.05.2006 22:05



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.