Tannkrem1 Skrevet 19. juli 2006 Del Skrevet 19. juli 2006 (endret) Hei hopp. Jeg prøver å lage en function, som skal skrive en og en bokstav, med sleep imellom. F.eks typer("Dette er tekst", 200); "Dette er tekst" er teksten som blir printet ut. 200 er ms i sleep(); Stor edit: Jeg kan gi dere koden: #include <stdio.h> #include <stdlib.h> void typer(char* text, int sleeps) { int i = 0; while(i < strlen(text)) { printf("%s", text[i]); sleep(sleeps); i++; } printf("\n"); } int main() { typer("Dette er en test", 200); getchar(); return 0; } Den kompilerer uten feil, men programmet klikker med en gang jeg starter det.. "test.exe har et problem og må lukkes." blabla. Ser noen en feil? Husk at jeg er C-newbie, så om dere vet svaret, helst svar på en litt "lett" måte. Takk. Endret 19. juli 2006 av THROBiX Lenke til kommentar
Tannkrem1 Skrevet 19. juli 2006 Forfatter Del Skrevet 19. juli 2006 Ok, jeg fant ut feilen! Måtte bytte ut "printf("%s", text);" med "printf("%d", text);. Da kan vel denne tråden stenges. Lenke til kommentar
Giddion Skrevet 19. juli 2006 Del Skrevet 19. juli 2006 Hei hei velkommen skal du være.. edit: alt arbeidet for ingenting jeg bruker vs så det kan være litt forandringer.. Jeg poster koden som fungere så forklare jeg under #include <string.h> #include <stdio.h> #include <stdlib.h> #include "Windows.h" void typer(char* text, int sleep) { int i = 0; while(i < strlen(text)) { printf("%C", text[i]); Sleep(sleep); i++; } printf("\n"); } int main() { typer("Dette er en test", 200); getchar(); return 0; } for det første trengte jeg å inkludere #include <string.h> pga strlen (det ser ikke ut som du her det problemet, men dete hadde jeg.. så strlen tar pekere til tekst som argument og du brukte et tegn. Så jeg har modifisert typer til å bruke pekere (*) så printf sin %s leser hele teksten til den kommer til 0 tegnet. så derfor vil ikke koden din fungere (tror det er mulig å bruke %s ved hjelp av Precision Specification) så jeg har brukt %C som skriver et tegn. bare spør hvis det er noe du lurer på.. lykke til Lenke til kommentar
Tannkrem1 Skrevet 19. juli 2006 Forfatter Del Skrevet 19. juli 2006 (endret) Jaja. Takk uansett! Er faktisk noe mer jeg lurer på: Er det en måte så jeg kan center-align teksten i printf? Altså, at printf("hei"); printer ut "hei" midt i konsollen.. Takker. Endret 19. juli 2006 av THROBiX Lenke til kommentar
lnostdal Skrevet 19. juli 2006 Del Skrevet 19. juli 2006 (endret) Nei, dette går ikke med standard C. Du må bruke konsoll-programvaren sine funksjoner for dette. Under Linux vil dette si ting som Ncurses eller Slang (google it). Under Win32 vil det si ting som ..øh.. søk etter "console" på msdn library (google it). Som regel er det greit å vente med slike OS-spesifike ting til man er "ferdig utlært" når det gjelder generell C/C++ - og når man er kommet så langt ønsker man gjerne å lage GUI'er i stedet for konsoll-programmer uansett. Endret 19. juli 2006 av lnostdal Lenke til kommentar
Tannkrem1 Skrevet 29. september 2006 Forfatter Del Skrevet 29. september 2006 (endret) Beklager bump, men tenkte det var like greit siden jeg skal spørre om noe angående samme kode. La oss si jeg har denne: void writer(char *text, int wait) { int i = 0; while(i < strlen(text)) { printf("%c", text[i]); sleep(wait); i++; } printf("\n"); } Så vil jeg få til dette: writer("Spiller av %s...", FMUSIC_GetName(mod)); Altså, at jeg kan ha %s/%i/%c etc inne i stringen! Vet noen hvordan jeg fikser så det går an? Beklager for at jeg kanskje spør dumt, men jeg er fortsatt nybegynner i C. Endret 29. september 2006 av THROBiX Lenke til kommentar
lnostdal Skrevet 30. september 2006 Del Skrevet 30. september 2006 (endret) Beklager bump, men tenkte det var like greit siden jeg skal spørre om noe angående samme kode. La oss si jeg har denne: void writer(char *text, int wait) { int i = 0; while(i < strlen(text)) { printf("%c", text[i]); sleep(wait); i++; } printf("\n"); } Så vil jeg få til dette: writer("Spiller av %s...", FMUSIC_GetName(mod)); Altså, at jeg kan ha %s/%i/%c etc inne i stringen! Vet noen hvordan jeg fikser så det går an? Beklager for at jeg kanskje spør dumt, men jeg er fortsatt nybegynner i C. 6967358[/snapback] problemet er neppe hva du har i strengen; men mer det at du ikke kan forutse antall argumenter til funksjonen `writer' .. da må du ta i bruk "tre punktum etter hverandre" det kan hende det holder å nevne man 3 stdarg (om du er uheldig: http://www.die.net/doc/linux/man/man3/stdarg.3.html ) ..om du fortsatt sliter kan jeg godt paste et "hello world"-eksempel ... :} edit: men ikke helt nå - venter til søndag (event . morra, får se; kan fort være at noen andre svarer før meg) .. hahaha -- god helg folk - Endret 30. september 2006 av lnostdal Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå