hi .. im doin an assignment on edlin text editor..
while implementing the insert new line function i need to exit a loop when a key combination is pressed..
inside the loop there will be some lines reading input from the user..so will be somting like below
while( ? )
{
getline(........
}

for example when user presses "<ctrl> + c" it should exit the loop.
........i cant figure out how to implement this .... some one plz help me .... my assignment is due dayafter. ..thanks

Recommended Answers

All 2 Replies

There are many solutions to this problem, but I'm going to assume you are not using curses or terminal libraries.


With gdb, break just after the getline (..) statement as see what the input buffer contains and then formulate your code based on that. For example let's say pressing F3 sends a 3 byte combination (EC 7F 03). Then

switch (Buffer [0]) {
case 0xEC:
; Because a function key always has 3 bytes we might assume next is 7F.
if (Buffer [2] == 3) {
; Do whatever is required base on F3 key
}
}

NOTE: This code doesn't represent actual circumstanses but rather how the key combination could be trapped base on this hypothetical situaltion.

thanks for ur reply but i didn quite undestand the above...
how do i get the raw input??

im using dev-c++ by the way...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.