c++ oude text weghalen
thyssimonis - 24/08/2005 11:40 (laatste wijziging 24/08/2005 17:23)
PHP interesse
Ik ben bezig met een c++ ping tooltje.
#include <iostream.h>
#include <windows.h>
int main()
{
int keuze;
char adres;
char janee;
menu:
cout << "Welkom, bij het handige tooltje op te pingen!" << endl;
cout << "1. Pingen" << endl;
cout << "2. Stoppen\n" << endl;
cout << "Voer u keuzen in:\t" << endl;
cin >> keuze;
if(keuze==1) { goto ping; }
if(keuze==2) { goto exit; }
else {
cout << "Ongeldige invoer!" << endl;
cout << "Druk een toets in om veder te gaan" << endl;
goto menu;
}
ping:
cout << "Voer adres of ip in:\t" << endl;
cin >> adres;
system("ping adres");
cout << "\nWil u nog een adres of ip pingen? [Ja/Nee]:" << endl;
cin >> janee;
if(janee=='jaa') { goto ping; }
if(janee=='nee') { goto exit; }
else { goto exit; }
exit:
cin.get();
return 0;
}
#include <iostream.h>
#include <windows.h>
int main( )
{
int keuze;
char adres;
char janee;
menu:
cout << "Welkom, bij het handige tooltje op te pingen!" << endl;
cout << "1. Pingen" << endl;
cout << "2. Stoppen\n " << endl;
cout << "Voer u keuzen in:\t " << endl;
cin >> keuze;
if ( keuze== 1 ) { goto ping; }
if ( keuze
== 2 ) { goto
exit ; } else {
cout << "Ongeldige invoer!" << endl;
cout << "Druk een toets in om veder te gaan" << endl;
goto menu;
}
ping:
cout << "Voer adres of ip in:\t " << endl;
cin >> adres;
cout << "\n Wil u nog een adres of ip pingen? [Ja/Nee]:" << endl;
cin >> janee;
if ( janee== 'jaa' ) { goto ping; }
if ( janee
== 'nee' ) { goto
exit ; }
cin. get( ) ;
return 0 ;
}
Ik heb 3 dingen die het niet doen:(
1. Als ik nou bijv 1 invull ga ik naar ping gedeelte maar de oude text blijft nog staan:S
2. als je bij3 invult krijg je ongeldige invoer en gaat gelijk naar het menu weer, hij moet pas gaan als er op een toets is geklikt.
3. Het pingen lukt niet ik wacht en daarna sluit
18 antwoorden
Gesponsorde links
thyssimonis - 24/08/2005 11:52 (laatste wijziging 24/08/2005 17:42)
PHP interesse
Kan ook anders, ik wil gelijk netjes doen!
Fenrir - 24/08/2005 18:04
PHP expert
Volgens mij niet. (iig niet cross-platform). Sla gewoon regels over, en dan:
gotoxy(1,1);
thyssimonis - 24/08/2005 18:23 (laatste wijziging 25/08/2005 00:08)
PHP interesse
Ja had ik ook al ondekt heb de meeste fouten er uit gehaald ik hou er 2 over!
Ik heb dit:
#include <iostream.h>
#include <windows.h>
#include <stdio.h>
int main()
{
int keuze;
char[50] adres;
char janee;
menu:
system("cls");
cout << "Welkom, bij het handige tooltje op te pingen!" << endl;
cout << "1. Pingen" << endl;
cout << "2. Stoppen\n" << endl;
cout << "Voer u keuzen in:\t" << endl;
cin >> keuze;
system("cls");
if(keuze==1) { goto ping; }
if(keuze==2) { goto exit; }
else {
cout << "Ongeldige invoer!" << endl;
cerr << "Druk een toets in om veder te gaan" << endl;
getchar();
goto menu;
}
ping:
system("cls");
cout << "Voer adres of ip in:\t" << endl;
cin.getline (adres, 50);
system("ping" + adres);
cout << "\nWil u nog een adres of ip pingen? [Ja/Nee]: " << endl;
cin >> janee;
system("cls");
if(janee=='ja') { goto ping; }
if(janee=='nee') { goto exit; }
else { goto exit; }
exit:
return 0;
}
#include <iostream.h>
#include <windows.h>
#include <stdio.h>
int main( )
{
int keuze;
char[ 50 ] adres;
char janee;
menu:
cout << "Welkom, bij het handige tooltje op te pingen!" << endl;
cout << "1. Pingen" << endl;
cout << "2. Stoppen\n " << endl;
cout << "Voer u keuzen in:\t " << endl;
cin >> keuze;
if ( keuze== 1 ) { goto ping; }
if ( keuze
== 2 ) { goto
exit ; } else {
cout << "Ongeldige invoer!" << endl;
cerr << "Druk een toets in om veder te gaan" << endl;
getchar( ) ;
goto menu;
}
ping:
cout << "Voer adres of ip in:\t " << endl;
cin. getline ( adres, 50 ) ;
cout << "\n Wil u nog een adres of ip pingen? [Ja/Nee]: " << endl;
cin >> janee;
if ( janee== 'ja' ) { goto ping; }
if ( janee
== 'nee' ) { goto
exit ; }
return 0 ;
}
De fout:
char[50] adres;
^
main.cpp(9) : Error: identifier or '( declarator )' expected
cin.getline (adres, 50);
^
main.cpp(33) : Error: undefined identifier 'adres'
--- errorlevel 1
char[ 50 ] adres;
^
main. cpp( 9 ) : Error: identifier or '( declarator )' expected
cin. getline ( adres, 50 ) ;
^
main. cpp( 33 ) : Error: undefined identifier 'adres'
--- errorlevel 1
Echt niemand die mij kan helpen:(
thyssimonis - 25/08/2005 00:07
PHP interesse
Bedankt, dat is 1 error weg!
system("ping" + adres);
^
main.cpp(35) : Error: illegal pointer arithmetic
Had: char const *
and: char *
--- errorlevel 1
^
main. cpp( 35 ) : Error: illegal pointer arithmetic
Had: char const *
and: char *
--- errorlevel 1
thyssimonis - 25/08/2005 01:22
PHP interesse
C:\Program Files\C-Compiler\dm\bin>dmc main
system("ping %c", adres);
^
main.cpp(32) : Error: 1 actual arguments expected for system, had 2
system("ping" + adres);
^
main.cpp(35) : Error: illegal pointer arithmetic
Had: char const *
and: char *
--- errorlevel 1
C: \Program Files\C- Compiler\dm\bin> dmc main
^
main
. cpp
( 32 ) : Error
: 1 actual arguments expected
for system , had
2 ^
main. cpp( 35 ) : Error: illegal pointer arithmetic
Had: char const *
and: char *
--- errorlevel 1
thyssimonis - 25/08/2005 01:39
PHP interesse
system("ping " << adres);
^
main.cpp(32) : Error: illegal operand types
Had: char const *
system("ping" + adres);
^
main.cpp(35) : Error: illegal pointer arithmetic
Had: char const *
and: char *
--- errorlevel 1
^
main. cpp( 32 ) : Error: illegal operand types
Had: char const *
^
main. cpp( 35 ) : Error: illegal pointer arithmetic
Had: char const *
and: char *
--- errorlevel 1
Fenrir - 25/08/2005 09:00
PHP expert
Ik dacht ergens gelezen te hebben dat system("cls"); een nieuw proces startte? (zware overkill om het scherm leeg te maken als dat waar is)
Misschien is er wat fout aan de typen? Als je "een paar tekens" doet, is dat dan standaard een string? Of een char[]? Misschien moet je het dan naar dat type casten?
DRUNK - 25/08/2005 19:12 (laatste wijziging 25/08/2005 20:12)
PHP gevorderde
Ben je nou met c++ bezig of een .bat file?
In een ver verleden heb ik geleerd 'goto' niet te gebruiken (dat het nogsteeds ondersteund word..?)
Waarom schrijf je het niet gewoon in een .bat (shellscript voor windhoos) als je toch een system call naar 'ping' doet?
Als je toch met c++ bezig bent gebruik de string classe i.p.v. de oude C style strings (char array's)
#include <iostream>
#include <string>
int main(void) {
std::string input;
std::cout << "Geef input: ";
getline(std::cin, input);
std::cout << "U schreef: " << input << std::endl;
std::cout << "Lengte van 'input': " << input.length() << std::endl;
return 0;
}
#include <iostream>
#include <string>
int main( void) {
std:: string input;
std:: cout << "Geef input: " ;
getline( std:: cin , input) ;
std:: cout << "U schreef: " << input << std:: endl ;
std:: cout << "Lengte van 'input': " << input. length( ) << std:: endl ;
return 0 ;
}
PS: Dit is c++ dus: include <iostream> // dus zonder .h, met .h is erg oud
thyssimonis - 25/08/2005 19:30 (laatste wijziging 25/08/2005 23:28)
PHP interesse
Nou, dan staan hier oude tutorials op sitemasters.be!
Kan iemand niet voor mij hellemaal het script bug vrij maken?
Dan weet ik het gelijk en kan ik het nooit meer fout doen.
DRUNK - 26/08/2005 02:08
PHP gevorderde
Misschien heb je hier wat aan, kan het hier niet testen geen Windhoos op laptop.
/* http://cpp.enisoc.com/articles/clrscr/ */
#include <windows.h>
void clrscr()
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord = {0, 0};
DWORD count;
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hStdOut, &csbi);
FillConsoleOutputCharacter(hStdOut, ' ', csbi.dwSize.X * csbi.dwSize.Y, coord, &count);
SetConsoleCursorPosition(hStdOut, coord);
}
int main()
{
clrscr();
return 0;
}
/* http://cpp.enisoc.com/articles/clrscr/ */
#include <windows.h>
void clrscr( )
{
HANDLE hStdOut = GetStdHandle( STD_OUTPUT_HANDLE) ;
COORD coord = { 0 , 0 } ;
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo( hStdOut, & csbi) ;
FillConsoleOutputCharacter( hStdOut, ' ' , csbi. dwSize. X * csbi. dwSize. Y, coord, & count) ;
SetConsoleCursorPosition( hStdOut, coord) ;
}
int main( )
{
clrscr( ) ;
return 0 ;
}
thyssimonis - 26/08/2005 02:43 (laatste wijziging 26/08/2005 04:16)
PHP interesse
Dit gaat voor mij denk ik een beetje te ver. Ben nog maar een beginner hier snap ik niks meer van.
Maar met een schoon veld beginne had ik al opgelost met
system("cls");
Het pingen is nu gelukt:p
#include <iostream.h>
#include <windows.h>
#include <string.h>
#include <stdio.h>
int main()
{
int keuze;
char buffer[128];
char adres[50];
char janee;
menu:
system("cls");
cout << "Welkom, bij het handige tooltje op te pingen!" << endl;
cout << "1. Pingen" << endl;
cout << "2. Stoppen\n" << endl;
cout << "Voer u keuzen in:\t" << endl;
cin >> keuze;
system("cls");
if(keuze==1) { goto ping; }
if(keuze==2) { goto exit; }
else {
cout << "Ongeldige invoer!" << endl;
cerr << "Druk een toets in om veder te gaan" << endl;
getchar();
goto menu;
}
ping:
cout << "Voer adres of ip in:\t" << endl;
cin >> adres;
sprintf(buffer, "ping %s", adres);
system(buffer);
cout << "\nWil u nog een adres of ip pingen? [Ja/Nee]:\t " << endl;
cin >> janee;
system("cls");
if(janee=='ja') { goto ping; }
if(janee=='nee') { goto exit; }
else { goto exit; }
exit:
return 0;
}
#include <iostream.h>
#include <windows.h>
#include <string.h>
#include <stdio.h>
int main( )
{
int keuze;
char buffer[ 128 ] ;
char adres[ 50 ] ;
char janee;
menu:
cout << "Welkom, bij het handige tooltje op te pingen!" << endl;
cout << "1. Pingen" << endl;
cout << "2. Stoppen\n " << endl;
cout << "Voer u keuzen in:\t " << endl;
cin >> keuze;
if ( keuze== 1 ) { goto ping; }
if ( keuze
== 2 ) { goto
exit ; } else {
cout << "Ongeldige invoer!" << endl;
cerr << "Druk een toets in om veder te gaan" << endl;
getchar( ) ;
goto menu;
}
ping:
cout << "Voer adres of ip in:\t " << endl;
cin >> adres;
cout << "\n Wil u nog een adres of ip pingen? [Ja/Nee]:\t " << endl;
cin >> janee;
if ( janee== 'ja' ) { goto ping; }
if ( janee
== 'nee' ) { goto
exit ; }
return 0 ;
}
Allen dit nog
cout << "\nWil u nog een adres of ip pingen? [Ja/Nee]:\t " << endl;
cout << "\n Wil u nog een adres of ip pingen? [Ja/Nee]:\t " << endl;
Als ik dan "ja" in typ sluit hij ook af:s
DRUNK - 26/08/2005 12:11 (laatste wijziging 26/08/2005 13:16)
PHP gevorderde
Je hebt 'janee' als char gedefineerd, de waarde die er in komt is dus alleen de eerste letter die je invoerd.
In je if statement kijk je of 'janee' de waarde 'ja' of nee bevat, dat doet deze niet dus het programma beindigd.
// bla bla ...
int main() {
// blabla
char janee[4]; // defineer char array van 3 maximaal 3 tekens (nee+\0)
// blabla nog meer code ...
cin >> janee;
system("cls");
if (janee == "ja") goto ping;
else goto exit;
// en de rest ...
}
// bla bla ...
int main( ) {
// blabla
char janee[ 4 ] ; // defineer char array van 3 maximaal 3 tekens (nee+\0)
// blabla nog meer code ...
cin >> janee;
if ( janee == "ja" ) goto ping;
// en de rest ...
}
of
// bla bla ...
int main() {
// blabla
char janee; // defineer char ...
// blabla nog meer code ...
cout << "\nWil u nog een adres of ip pingen? [J/n]:\t " << endl;
cin >> janee;
system("cls");
if (janee == 'J') goto ping;
else goto exit;
// en de rest ...
}
// bla bla ...
int main( ) {
// blabla
char janee; // defineer char ...
// blabla nog meer code ...
cout << "\n Wil u nog een adres of ip pingen? [J/n]:\t " << endl;
cin >> janee;
if ( janee == 'J' ) goto ping;
// en de rest ...
}
PS: waarom include je stdio? Dit is de C I/O library waar printf(), scanf() ed. gedefineerd worden, die gebruik je toch niet in c++.
thyssimonis - 26/08/2005 13:22
PHP interesse
Als ik #include <stdio.h> weg haal krijg ik error!
En doet alles het:P
Bedankt
Gesponsorde links
Dit onderwerp is gesloten .