LINUX.ORG.RU

scanf & width modifier


0

0

Дарова, Кодеры!

как мне сделать так чтоб sscanf читал максимальное количество символов _len_ из строки?

char a[LEN];
int len=LEN;
..

sscanf(a,"%*d",len,a);

прокатит или есть другие варианты?


не так не катит, думал что * используется также как в printf, где можно указывать количество печатаемых символов в переменной.

Пример:

int len=2;
int num=12345;

printf("%2.d",num);

эквивалентно

printf("%*d,len,num);


Как это можно сделать с sscanf() ??

xerc
() автор топика
Ответ на: комментарий от legk

извините, вы мне предлогаете перепрограммировать scanf()?

xerc
() автор топика
Ответ на: комментарий от dilmah

> ну и делаешь a[LEN-1] = 0

угу, тока я не хочу модифицировать buffer. Можить я неясно выразился, попытаюсь пояснить:

sscanf(str,"%3d",&num);

эта функцыя читает первые 3 байта из строки str и парзит int в num. Есть ли возможность передать sscanf количество байт в переменной, так как размер буффера изменяется в runtime.

В printf это делается весьма просто, там ест спецыальный модификатор * а scanf я такого пока не нашел.

Что скажут местные гуру??

xerc
() автор топика
Ответ на: комментарий от Legioner

да, про это я тоже уже думал, не особенно элегантно, но по всей видимости другово варианта не остается, главное прет ;)

xerc
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.