sprintf(s, "%7.2f\0", value);
...
char *s = "187"; // Исходная строка
char buffer[128] = "\0"; // Место под ПЕРЕконвертированную из int строку
int val = atoi(s); // строка -> число
itoa(val, buffer, 10); // число -> строка
...
int val = atoi(strncpy(buffer, s, 2));
itoa(val + 10, buffer, 10); // +10 чтобы было видно, что действительно происходит конвертация
char buffer[128] = "\0";
char *s;
int m=atoi(strncpy(buffer, s, 2));
f_in>>s;
char *s = "123";
char *s;, то указатель-то есть, а вот строки нет. И при попытке обращения "в никуда" будет ошибка. Выделяй место под строку в таком случае:
char s[20];должно работать...
...
f >> s;
int m=atoi(strncpy(buffer, s, 2));
int val = atoi(strncpy(buffer, s + 3, 2));
int val = atoi(strncpy(buffer, strstr(s, ":") + 1, 2));