[P&AM Lab] генератор паролей

Grigoriy A. Sitkarev sitkarev на komitex.ru
Вт Фев 15 20:29:04 MSK 2011


Костя,

Ты во-первых, не спеши. Это раз.

Во-вторых, то что fgets() записывает нам символ переноса каретки -- это 
прелестно. Потому что мы точно знаем что ввод был завершён и у нас есть 
все символы, которые вводил пользователь.

Думаю что на примере ниже всё будет понятно. Объяснения не нужны.

#define MAX_BUF

void read_line()
{
	char buf[MAX_BUF];
	char *cp;
	int len;

	cp = fgets(buf, sizeof(buf), stdin);

	if (cp == NULL) {
		fprintf(stderr, "can't read stdin\n");
		...
	}

	len = strlen(buf);

	if (buf[len-1] != '\n') {
		fprintf(stderr, "input line too long\n");
		...
	}

	buf[--len] = '\0';
	
	/* Now buf has a string without '\n' and len is it's length.*/
	...
}

--
Г.А.

15.02.2011 19:15, Константин Никулов пишет:
> Почти все переделал - стало гораздо проще и короче) Единственная проблема - если использовать fgets для получения пути, то записываемые файлы приобретают в конце символ '\n'.





Подробная информация о списке рассылки Lab