проблема sprintf_s

Я сделал большое чтение из файлов Excel в C# только что, и мы использовали два подхода:

  • API COM, где Вы получаете доступ к объектам Excel непосредственно и управляете ими через методы и свойства
  • драйвер ODBC, который позволяет использовать Excel как база данных.

последний подход был очень быстрее: чтение большой таблицы с 20 столбцами и 200 строк заняло бы 30 секунд через COM, и половина секунды через ODBC. Таким образом, я рекомендовал бы подход базы данных, если все, в чем Вы нуждаетесь, является данными.

С наилучшими пожеланиями,

Carl

8
задан Ólafur Waage 9 September 2009 в 08:41
поделиться

3 ответа

Ваш буфер содержит 8 мест. Ваша строка содержит 8 символов и нулевой символ, закрывающий ее.

13
ответ дан 5 December 2019 в 10:43
поделиться

Все функции sprintf добавляют нуль для завершения строки. Таким образом, длина вашей строки составляет 9 символов. 8 байт текста и конечный ноль

1
ответ дан 5 December 2019 в 10:43
поделиться

Ваша строка потребует завершения '\ 0' и 8 байтов данных (00000001) из-за% 08d. Итак, вы должны иметь размер 9.

2
ответ дан 5 December 2019 в 10:43
поделиться