Странно, что никто не упомянул эту возможность:
char Buffer[8]; //holds the byte stream
int i = 0;
while (i < sizeof(Buffer) && (charInput = get_the_users_character()) != EOF)
{
Buffer[i] = charInput;
i++;
// Display a response to input
printf("Buffer is %.*s!\n", i, Buffer);
}
Эта нотация в строке формата printf () указывает максимальную длину строки, которая должна отображаться, и не требует нулевого завершения (хотя нулевое завершение в конечном итоге является лучшим способом - по крайней мере, когда вы покидаете этот цикл).
Цикл while
более правдоподобен, чем простой if
, и эта версия гарантирует, что вы не переполняйте конец буфера (но не оставляйте достаточно места для конечного NUL '\0'
. Если вы хотите обработать это, используйте sizeof(Buffer) - 1
, а затем добавьте NUL после цикла.
Мой сценарий состоял в том, что клиент недавно попросил обновить онлайн-список sharepoint. Итак, мне нужно было активировать WIF ПОСЛЕ установки BizTalk. В своих попытках решить эту проблему я также установил последнюю версию CU6 и тоже сделал ремонт. Но та же проблема.
У меня есть сценарий powershell, который можно использовать для проверки подключения и проверки доступности онлайн-списка SharePoint, чтобы исключить сам адаптер и ограничить масштаб проблемы. При запуске сценария возникла проблема с поиском классов в сборке Microsoft.SharePoint.Client.dll. Очевидно, что на машине чего-то не хватает!
Я установил SharePoint Client SDK на машину, и - eureka - я получил следующее сообщение об ошибке!
Похоже, вам нужно установить дополнительные сборок для Windows SharePoint Services Adapter, хотя в документации указано иное. Возможно, это связано с активацией WIF ПОСЛЕ установки BizTalk.
Следующее (вводящее в заблуждение) сообщение об ошибке!