Pomoc s sprintf – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pomoc s sprintf – C / C++ – Fórum – Programujte.comPomoc s sprintf – C / C++ – Fórum – Programujte.com

 

jmeno
~ Anonymní uživatel
28 příspěvků
15. 12. 2009   #1
-
0
-

void vypis(int n, char prefix, int shift)
{
char b[delka];
sprintf(b,"%c%%%dd\n",prefix, delka-shift);
printf(b,n);
}

Zajímá mě proč, tam je tolik % - sprintf(b,"%c%%%dd\n",prefix, delka-shift);

Nahlásit jako SPAM
IP: 81.91.219.–
KIIV
~ Moderátor
+43
God of flame
15. 12. 2009   #2
-
0
-

%% se vypise jako jeden znak '%' na vystup.. samotne % totiz neprojde a nejde ani pouzit escape sekvenci

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
jmeno
~ Anonymní uživatel
28 příspěvků
15. 12. 2009   #3
-
0
-

To KIIV : A proč tam jsou dd?

Nahlásit jako SPAM
IP: 81.91.219.–
crAzY^
~ Moderátor
+10
Grafoman
15. 12. 2009   #4
-
0
-

to také jedno d vypíše na výstup, může to být značka nějaké jednotky

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
jmeno
~ Anonymní uživatel
28 příspěvků
15. 12. 2009   #5
-
0
-

To crAzY^ : Takže podle vás tam je %%d a na co tam je to první %?

Nahlásit jako SPAM
IP: 81.91.219.–
KIIV
~ Moderátor
+43
God of flame
15. 12. 2009   #6
-
0
-

"%c%%%dd\n"

%c - vypise znak podle parametru
%% - vypise %
%d - vypise int podle parametru
d - zustane nezmeneno - zustane na vystupu d
\n - se nahradi za znak(u win by to mel byt dvojznak) enter - tj. odradkovani

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
jmeno
~ Anonymní uživatel
28 příspěvků
15. 12. 2009   #7
-
0
-

To KIIV :
Zkuste si to a uvidíte, že d není na výstupu

#include <string.h>
#include <stdio.h>
#include <iostream>

const int delka=18;

using namespace std;

void Underline()
{
printf(" ------\n");
}



void vypis(int n, char prefix, int shift)
{
char b[delka];
int odsazeni=delka-shift;
sprintf(b,"%c%%%dd\n",prefix, odsazeni);
printf(b,n);
}
int main(int argc, char* argv[])
{
int x;


int a, b, c, s;
printf("Zadejte prvni cislo:\n");
scanf("%d", &a);
printf("Zadejte druhe cislo:\n");
scanf("%d", &b);
printf("\n");
vypis(a,' ',0);
vypis(b,'*',0);
Underline();
for(s=0,c=b;c;c/=10,s++)
{
vypis(a*(c%10),' ',s);
}
Underline();
vypis(a*b,'=',0);


return 0;

Nahlásit jako SPAM
IP: 81.91.219.–
jmeno
~ Anonymní uživatel
28 příspěvků
15. 12. 2009   #8
-
0
-

To KIIV :

#include <string.h>
#include <stdio.h>
#include <iostream>

const int delka=18;

using namespace std;

void Underline()
{
printf(" ------\n");
}



void vypis(int n, char prefix, int shift)
{
char b[delka];
int odsazeni=delka-shift;
sprintf(b,"%c%%%dd\n",prefix, odsazeni);
printf(b,n);
}
int main(int argc, char* argv[])
{
int x;


int a, b, c, s;
printf("Zadejte prvni cislo:\n");
scanf("%d", &a);
printf("Zadejte druhe cislo:\n");
scanf("%d", &b);
printf("\n");
vypis(a,' ',0);
vypis(b,'*',0);
Underline();
for(s=0,c=b;c;c/=10,s++)
{
vypis(a*(c%10),' ',s);
}
Underline();
vypis(a*b,'=',0);


return 0;

}

Nahlásit jako SPAM
IP: 81.91.219.–
jmeno
~ Anonymní uživatel
28 příspěvků
15. 12. 2009   #9
-
0
-

To KIIV :

#include <string.h>
#include <stdio.h>
#include <iostream>

const int delka=18;

using namespace std;

void Underline() //Funkce na podtrĹľenĂ­ a "odsazenĂ­" textu
{
printf(" ------\n");
}

void hlavicka()
{
printf("******************************************************\n");
printf("*----------------- Pisemne nasobeni -----------------*\n");
printf("*---------------- Autor: Marek MUCHA ----------------*\n");
printf("*------------------ Login: muc0012 ------------------*\n");
printf("*----------------------- 2009 -----------------------*\n");
printf("******************************************************\n\n");
}

void vypis(int n, char prefix, int shift) //Funkce, která vypíše a zarovná cifry mezivýsledků pod sebe
{
char b[delka];
int odsazeni=delka-shift;
sprintf(b,"%c%%%dd\n",prefix, odsazeni);
printf(b,n);
}
int main(int argc, char* argv[])
{
int x;
do
{
hlavicka ();
int a, b, c, s;
printf("Zadejte prvni cislo:\n");
scanf("%d", &a);
printf("Zadejte druhe cislo:\n");
scanf("%d", &b);
printf("\n");
vypis(a,' ',0);
vypis(b,'*',0);
Underline();
for(s=0,c=b;c;c/=10,s++)
{
vypis(a*(c%10),' ',s);
}
Underline();
vypis(a*b,'=',0);
printf ("\n\nChcete-li ukoncit program, napiste jednicku, chcete-li pokracovat, \nnapiste jakekoli jine cislo.\n");
cin >> x;
system("CLS");

}
while (x != 1);

return 0;

/*
s - posun vypisu
b - nasobitel
c - cast nasobitele
c%10 - cifra nasobitele s niz se pracuje

for - cyklus
/ - celociselne deleni
% - zbytek po celociselnem deleni
vypis - vypis cisla
a*(c%10) - cislo, ktere se ma vypsat
' ' - mezera se vypise pred cislem
s - pocet znaku o ktere je cislo odsazene doleva
( - oteviraci kulata zavorka
) - uzaviraci kulata zavorka
, - carka oddelujici prirazeni
, - carka oddelujici parametry
; - strednik oddelujici casti cyklu for
; - strednik ukoncujici prikaz
*/

}

Nahlásit jako SPAM
IP: 81.91.219.–
KIIV
~ Moderátor
+43
God of flame
15. 12. 2009   #10
-
0
-

To jmeno : jo jenze ono se to tiskne do retezce a ten se potom predhodi jeste tisku na obrazovku..
kdyz vytisknete primo ten retezec tak tam urcite to d bude ..

je to takova klicka promenneho formatovani.. (kdy nekdo nevi ze to jde udelat primo)

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
jmeno
~ Anonymní uživatel
28 příspěvků
15. 12. 2009   #11
-
0
-

To KIIV : A jak by to šlo udělat přímo?

Nahlásit jako SPAM
IP: 81.91.219.–
KIIV
~ Moderátor
+43
God of flame
15. 12. 2009   #12
-
0
-
Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 116 hostů

Podobná vlákna

Sprintf — založil oxidián

Sprintf - předání parametrů — založil hlucheucho

Sprintf() pro WCHAR[] — založil Bigi

Sprintf formátování bool — založil hlucheucho

Moderátoři diskuze

 

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