Author |
Message |
hey_joe42
|
Posted: Thu Mar 13, 2003 4:47 pm Post subject: problems with getch |
|
|
i have a problem with getch it only seems to work with strings of length 1
well what if i wanted to getch something at a certian length like four, like i wanted the user to type like 4 digits
like okay here is what the user in their heads are going to type
abcdef
k but the variable can only hold 4 characters, so when the user gets to d of its input it stops them and they don't have to hit enter
how can you do this |
|
|
|
|
|
Sponsor Sponsor
|
|
|
Dan
|
Posted: Thu Mar 13, 2003 4:59 pm Post subject: (No subject) |
|
|
code: |
var name:string (4)
put "put in 4 letters"
get name:4
put name
|
this will input as may letters as they type but will only store 4 of them in the varible name (the 1st 4). |
Computer Science Canada
Help with programming in C, C++, Java, PHP, Ruby, Turing, VB and more! |
|
|
|
|
Tony
|
Posted: Thu Mar 13, 2003 5:11 pm Post subject: (No subject) |
|
|
it would be the same as
code: |
get text
put text(1..4)
|
the question as I can see is getting 4 characters without pressing enter. The answer - forloop!
code: |
var text:string := ""
var c:string(1)
for i:1..4
getch(c)
put c..
text += c
end for
put ""
put text
|
|
Tony's programming blog. DWITE - a programming contest. |
|
|
|
|
Asok
|
Posted: Thu Mar 13, 2003 9:14 pm Post subject: (No subject) |
|
|
there is another way to do it that I am currently using for highscores (only 3 character initials)
code: | var pnamec1 : string (1)
var pnamec2 : string (1)
var pnamec3 : string (1)
var pname : string (3)
put "Please enter player name:"..
getch (pnamec1)
put pnamec1 ..
getch (pnamec2)
put pnamec2 ..
getch (pnamec3)
put pnamec3
pname := pnamec1 + pnamec2 + pnamec3 |
It's sorta inefficient but if it's only for 4 characters who cares |
|
|
|
|
|
Tony
|
Posted: Thu Mar 13, 2003 10:30 pm Post subject: (No subject) |
|
|
you see... the forloop does the same thing, but you can change how many characters you want
thx for sharing your ideas though |
Tony's programming blog. DWITE - a programming contest. |
|
|
|
|
hey_joe42
|
Posted: Fri Mar 14, 2003 12:53 pm Post subject: k here another one |
|
|
now whatever well i was working on my program
i was switching everything to this cuz it just easy it not the sasme but there are no errors except i ran into this problem trying to change get product:* to get product:10 but what do i do if it two words? |
|
|
|
|
|
azndragon
|
Posted: Fri Mar 14, 2003 12:55 pm Post subject: (No subject) |
|
|
get product:10 will only accept the first 10 letters entered, or more accurately, only 10 ASCII values, which include spaces. If you want it to correctly accept input for 2 words, you have to type in 2 words, 1 with 5 letters, the other with 4 letters.
5 letters + 1 space + 4 letters = 10 letters total collected by Turing. |
|
|
|
|
|
Tony
|
Posted: Fri Mar 14, 2003 1:00 pm Post subject: (No subject) |
|
|
you can still employ a getch inside a forloop set to 10. It will input space as a character. |
Tony's programming blog. DWITE - a programming contest. |
|
|
|
|
Sponsor Sponsor
|
|
|
|