QT creator.Не работает автодополнение кода функций вида scanf, printf , fscanf и т.д.



  • Такая проблема. Если я в голом проекте после #include <cstdio> попытаюсь после ввода fsca набрать ctrl+space, то в окне автодополнений не появится выбор fscanf, приходится набирать его вручную, в том числе и по памяти все аргументы. Однако, функции, работающие с whar_t автодополняются перфектно. Например, wprintf, fwscanf и т.д.
    Но мне удобнее работать с char, т.к. некотороые библиотеки рассчитаны именно на него. Вопрос именно в автодополнении, т.к. всё компилируется нормально.
    При этом интересно вот что: если я после #include <cstdio> пропишу #include <iostream>, то все char функции нормально дополняются. Можно, конечно, сделать такой финт: вначале проекта проинклудить заголовок <iostream>, далее работать нормально со всеми возможностями автодополнения, а затем непосредственно перед компиляцией закомментировать этот iostream, но это костыль. У кого-нибудь есть идеи, почему во всех иде, даже изначально не заточенных под C/C++, работает автодополнение, а у QT Creator нет. При этом исследовал откуда берёт ИДЕ заголовок cstdio и выяснил, что оттуда же, откуда все другие иде. Пробовал также инклудить непосредственно <stdio.h> - не сработало. Работаю, если что, под Gentoo + KDE



  • Я сталкивался с подобной проблемой, не с автодополнением, но с вызовом кастомной контекстной справки "Пост на форуме":http://qt-project.org/forums/viewthread/257/
    Ноги по-моему растут из одного и того-же места :)
    В конце темы даже создали баг "QTCREATORBUG-5948":https://bugreports.qt-project.org/browse/QTCREATORBUG-5948 , но так как это не критично, его просто закрыли.

    Основное объяснение такое:
    For example, for the math functions abs() and sqrt() the context help works only if <cmath> is included and recognized by QtCreator (cmath.h must be in the PATH or in INCLUDEPATH of the *.pro project file).

    Надеюсь это вам как-то поможет.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.