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);
Fórum › C / C++
Pomoc s sprintf
"%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
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;
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;
}
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
*/
}
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)
napriklad toto by melo fungovat obdobne: printf ("Width trick: %*d \n", 5, 10); // cislo 10 bude zarovnano na 5 znaku
priklad z http://www.cplusplus.com/reference/clibrary/cstdio/printf/
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Sprintf - předání parametrů — založil hlucheucho
Sprintf() pro WCHAR[] — založil Bigi
Sprintf formátování bool — založil hlucheucho
Sprintf - rozdíly mezi konverzí %i a %d? — založil hlucheucho
Moderátoři diskuze