Търся fscanf да идентифицира кога се случи потенциално препълване и не мога да си обясня как най-добре да го направя.
Например за файл, съдържащ низа
**a**bb**cccc**
I do a
char str[10];
while (fscanf(inputf, "*%10[^*]*", str) != EOF) {
}
защото ми е гарантирано, че това, което е между ** и **, обикновено е по-малко от 10. Но понякога може да получа
**a**bb**cccc*
(без последното *) или дори потенциално препълване на буфера.
Обмислях да използвам
while (fscanf(inputf, "*%10[^*]", str) != EOF) {
}
(без последното *) или даже
while (fscanf(inputf, "*%10s*", str) != EOF) {
}
но това ще върне целия низ. Опитах се да видя дали мога да проверя за наличие или липса на *, но не мога да накарам това да работи. Виждал съм също внедряване на fgets, но предпочитам да не го усложнявам. Някакви идеи?