|
| Concat af "\x" og en variabel af int. Fra : Mikkel L. Christense~ |
Dato : 08-05-01 16:42 |
|
Hej Alle.
Jeg sidder og har lidt problemer med at samlet en char "\x" (hex escape
sekvens) og en varabel der består af Integers. Problemet bunder i af at
jeg vil skrive et ASCII tegn udfra et tal, dette kan køres ved at skrive
"\xTAL" hvor TAL er en hex-værdi. Men dette tager jo ingen parametre, så
tænkte jeg at concat kunne hjælpe... er der nogen der har en ide til
concat eller fx. en helt anden ide.
/Mikkel
| |
Richard Flamsholt (08-05-2001)
| Kommentar Fra : Richard Flamsholt |
Dato : 08-05-01 19:40 |
|
"Mikkel L. Christensen" <mlch00@control.auc.dk> skrev:
>jeg vil skrive et ASCII tegn udfra et tal
/* udskriv det tegn som variablen tal angiver */
printf("%c", tal);
(s)printf'en kan naturligvis indgå som del af en større sammenhæng, fx
tal = 126;
sprintf(buf, "char(%d) svarer til tegnet '%c'\n", tal, tal);
Eller som det her lille (utestede) program, der udskriver alle tegn:
#include <stdio.h>
#include <limits.h>
int main(void) {
int i;
for (i = 1; i < UCHAR_MAX; i++)
printf("tegn %d er '%c'\n", i, i);
return 0;
}
--
Richard Flamsholt
richard@flamsholt.dk - www.richard.flamsholt.dk
| |
Mikkel L. Christense~ (09-05-2001)
| Kommentar Fra : Mikkel L. Christense~ |
Dato : 09-05-01 08:47 |
|
Tak Richard Flamsholt...
Men jeg bruger desværre C++ builder, der er det ikke lige at
implementere standard C++ kommandoer som prinft. Eller er det ??
Hvis der er andre der kan hjælp er de velkomne.
Hilsen Mikkel
| |
Mogens Hansen (09-05-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 09-05-01 09:29 |
|
Hej Mikkel,
"Mikkel L. Christensen" <mlch00@control.auc.dk> wrote in message
news:3AF8F5D9.4030402@control.auc.dk...
> Tak Richard Flamsholt...
>
> Men jeg bruger desværre C++ builder, der er det ikke lige at
> implementere standard C++ kommandoer som prinft. Eller er det ??
jo da.
printf skulle virke udemærket.
Har du prøvet og haft problemer ?
Men jeg vil bruge streams istedet.
Enten "std::cout" (som skriver til standard output, ligesom printf) eller
"std::ostringstream" som formaterer i hukommelsen (lidt á la sprintf - så
vidt jeg husker).
Følgende virker fint med Borland C++Builder V5.0, umiddelbart vel jeg mene
at der skal virke med alle compliant C++ compilere:
#include <iostream>
#include <iomanip>
#include <limits>
int main(void)
{
using namespace std;
for(char c = 1; numeric_limits<char>::max() != c; ++c) {
cout << "tegn 0x" << hex << setw(2) << setfill('0') <<
static_cast<int>(c) << " er " << c << endl;
}
return 0;
}
Venlig hilsen
Mogens Hansen
| |
Mikkel L. Christense~ (09-05-2001)
| Kommentar Fra : Mikkel L. Christense~ |
Dato : 09-05-01 10:28 |
|
Mogens Hansen wrote:
>> Men jeg bruger desværre C++ builder, der er det ikke lige at
>> implementere standard C++ kommandoer som prinft. Eller er det ??
>
>
> jo da.
> printf skulle virke udemærket.
> Har du prøvet og haft problemer ?
>
> Men jeg vil bruge streams istedet.
> Enten "std::cout" (som skriver til standard output, ligesom printf) eller
> "std::ostringstream" som formaterer i hukommelsen (lidt á la sprintf - så
> vidt jeg husker).
>
> Følgende virker fint med Borland C++Builder V5.0, umiddelbart vel jeg mene
> at der skal virke med alle compliant C++ compilere:
>
> #include <iostream>
> #include <iomanip>
> #include <limits>
>
> int main(void)
> {
> using namespace std;
>
> for(char c = 1; numeric_limits<char>::max() != c; ++c) {
> cout << "tegn 0x" << hex << setw(2) << setfill('0') <<
> static_cast<int>(c) << " er " << c << endl;
> }
>
> return 0;
> }
Jeg kan godt se fidusen i programmet.. men alle disse Standard C++
kommandoer synes altså ikke at virke i Borland c++ builder.
Skal det defineres noget sted? Hvordan definerer man f.eks hvor "cout"
skal skrives i min applikation, på fx. en Label eller til en variabel
der så kunne skrives i en Label?
Hilsen Mikkel
| |
Mogens Hansen (09-05-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 09-05-01 13:58 |
|
Hej Mikkel,
"Mikkel L. Christensen" <mlch00@control.auc.dk> wrote in message
news:3AF90D9D.8050907@control.auc.dk...
> Jeg kan godt se fidusen i programmet.. men alle disse Standard C++
> kommandoer synes altså ikke at virke i Borland c++ builder.
Som jeg skrev så _har_ jeg kørt det med Borland C++Builder V5.0.
> Skal det defineres noget sted? Hvordan definerer man f.eks hvor "cout"
> skal skrives i min applikation, på fx. en Label eller til en variabel
> der så kunne skrives i en Label?
Det lyder som om at dit problem er at du laver et program med en grafisk
brugergrænseflade. Den type programmer har ikke et standard output.
Du benytter tilsyneladende VCL.
Hvis du har en form med et TLabel og et TButton objekt, kan du skrive:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for(char c = 1; numeric_limits<char>::max() != c; ++c) {
ostringstream os;
os << "tegn 0x" << hex << setw(2) << setfill('0') <<
static_cast<int>(c) << " er " << c << endl;
Label1->Caption = os.str().c_str();
}
}
husk lige at inkludere
#include <sstream>
#include <iomanip>
#include <limits>
Venlig hilsen
Mogens Hansen
| |
Mikkel L. Christense~ (09-05-2001)
| Kommentar Fra : Mikkel L. Christense~ |
Dato : 09-05-01 16:08 |
|
Mogens Hansen wrote:
Det virker...
> Det lyder som om at dit problem er at du laver et program med en grafisk
> brugergrænseflade. Den type programmer har ikke et standard output.
Ok. så lærte jeg osse noget idag.
| |
|
|