спринтф не копирует? - PullRequest
       3

спринтф не копирует?

0 голосов
/ 20 июня 2010

Я пишу фаззер, использующий функцию system (), и мне нужно скопировать:

char a[1100]; /* full of A's with null ending */

в:

char tmp[10000];

Я использовал:

sprintf(tmp, "%s", a);

Когда я печатаю, там ничего не печатается.Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 20 июня 2010

Выходные данные часто буферизуются.Если в печатаемой строке нет новой строки, вы можете ее не увидеть, не вызвав сначала fflush (см. Также http://c -faq.com / stdio / fflush.html )Но, как сказал AndreyT, мы не можем сказать, не увидев остальную часть вашего кода.

3 голосов
/ 20 июня 2010

Невозможно сказать, что вы делаете неправильно, не видя всего этого.

Вышеупомянутый sprintf должен работать, хотя strcpy будет иметь больше смысла для этой цели. Я предполагаю, что sprintf отлично работает. Возможно, ваш массив a не "полон", как вы полагаете, а содержит пустую строку (с нулями). Или, может быть, ваша печать либо не работает, либо работает, но вы по каким-то причинам не видите вывод.

Могу поспорить, что ваша a - пустая строка. Нет там. Где и как вы помещаете эти A в массив a?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...