Anonymní profil Josef Dvořák – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Josef Dvořák – Programujte.comAnonymní profil Josef Dvořák – Programujte.com

 

Příspěvky odeslané z IP adresy 85.163.83.–

Josef Dvořák
C / C++ › Povolení %n pro zápis do .txt
26. 9. 2018   #381753

gna : tak tohle je opravdu jednoduchá oprava a děkuji ti za ni.

opravdu pokud zavolám funkci takto:

sprintf(Post, "%s: [POST]%s", Character, msg);
LogPost(Post);

%n to prostě nevezme ale...

LogPost("%s: [POST]%s", Character, msg);

vezme %n úplně v pohodě.

Děkuji, můžete uzavřít toto téma.

Josef Dvořák
C / C++ › Povolení %n pro zápis do .txt
26. 9. 2018   #381752

KIV děkuji, tato odpověď je asi to co jsem potřeboval.

To co musím udělat je prohledat řetězec msg, ještě než ho předám do funkce a nahradit % -> %%.

Poté by mělo být vše v pořádku.

Tedy pokud se nepletu.

Josef Dvořák
C / C++ › Povolení %n pro zápis do .txt
26. 9. 2018   #381748

Ahoj, mám problém se zápisem %n do textového souboru který funguje jako záznam z globálního chatu.

Mám tuto funkci která zajistí vytvoření souboru a následný zápis.

void LogPost(const char* format, ...) {
	_set_printf_count_output(1);
	va_list args;
	va_start(args, format);
	char msg[2048];
	SYSTEMTIME now;
	GetLocalTime(&now);
	char logString[512];
	wsprintf(logString, "LOG_POST\\%02d%02d%02d_POST.txt", now.wYear, now.wMonth, now.wDay);
	memset(msg, 0, sizeof(msg));
	FILE *logfile = fopen(logString, "a+");

	if (logfile)
	{
		_vsnprintf(msg, sizeof(msg), format, args);
		printf("%s", msg);
		fputs(msg, logfile);
		fclose(logfile);
	}
}

Bohužel, po odeslání zprávy která obsahuje %n, program spadne s hláškou "expression ( 'n' format specifier disabled 0)".

Nevíte někdo jak by se tento problém dal vyřešit?

Předem děkuji za odpovědi.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032019 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý