предупреждение: для system () в c ++ - PullRequest
2 голосов
/ 09 декабря 2011

У меня есть одна программа на С ++
Я звоню от ImageMagick command до system(); Функция
Она работает для некоторых простых команд
Но когда я вызываю эту команду

sprintf(command, "convert -threshold 25% f1/file%.3d.png f2/file%.3d.png", num,num);
system(command);

Это дает мне предупреждение: 1009 *

warning: format ‘% f’ expects type ‘double’, but argument 3 has type ‘int’

Я знаю, потому что % в команде 25 % f 1 имеет другое значение
Пожалуйста, помогите мне ...

Ответы [ 3 ]

6 голосов
/ 09 декабря 2011

Вы должны написать 25%% вместо 25%., чтобы экранировать знак "%".

3 голосов
/ 09 декабря 2011

Используйте %%, если вам нужно включить символ %:

sprintf(command, "convert -threshold 25%% f1/file%.3d.png f2/file%.3d.png", num,num);
2 голосов
/ 09 декабря 2011

Чтобы получить буквенный знак процента, нужно написать %%, т.е. в вашем случае:

sprintf(command, "convert -threshold 25%% f1/file%.3d.png f2/file%.3d.png", num,num);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...