cmd arguments n00b vraag

Status
Niet open voor verdere reacties.

Jayster2

Gebruiker
Lid geworden
3 nov 2008
Berichten
39
Code:
#include <iostream>
#include <fstream>
using namespace std;

int main ( int argc, char *argv[] ) {
	if ( argc != 3 ) {
	cout << "Usage:" << argv[0] << " [password] [videoid]\n";
	}
	else {
		if ( argv[1] == "test" ) {
			ofstream html;
			cout << "Opening file";
			html.open ("example.html");
			html << "test " << argv[2] << " test";			
			cout << "Done writing to file";
		}
		else {
		cout << "Wrong Password...\n";
		cout << "Usage:" << argv[0] << " [password] [videoid]\n";
		}
	}
return 0;
}

x.c: In function ‘int main(int, char**)’:
x.c:10: warning: comparison with string literal results in unspecified behaviour

Waarom werkt dit niet ? hij heeft hier moeite mee volgens mij: if ( argv[1] == "test" ) {

Groetjes
 
ben geen Cx expert, maar, heb je daar niet de strcomp() functie voor?

iets van
Code:
if ( strcomp(argv[1] ,"test" ) == 0){
   //ja, 'test' zit in argv[1]
}else{
   //nee, het is iets anders
}


:thumb:
 
ben geen Cx expert, maar, heb je daar niet de strcomp() functie voor?

iets van
Code:
if ( strcomp(argv[1] ,"test" ) == 0){
   //ja, 'test' zit in argv[1]
}else{
   //nee, het is iets anders
}


:thumb:

Thx voor een reply. Ik heb je code geprobeerd maar ik kreeg wederom een error.

compiling C++ using -ansi -pedantic-errors -Wall
x.c: In function ‘int main(int, char**)’:
x.c:10: error: ‘strcomp’ was not declared in this scope

Ik begrijp welke richting je opwilt met de code, alleen ik weet de juiste syntax nog niet voor c++ !

Groetjes
 
Thx voor een reply. Ik heb je code geprobeerd maar ik kreeg wederom een error.

compiling C++ using -ansi -pedantic-errors -Wall
x.c: In function ‘int main(int, char**)’:
x.c:10: error: ‘strcomp’ was not declared in this scope

Ik begrijp welke richting je opwilt met de code, alleen ik weet de juiste syntax nog niet voor c++ !

Groetjes

Je kunt ook gewoon de char array casten naar een string, mocht je willen. Of je gebruikt zoals Vegras zei de strcmp functie.

Code:
int main(int argc, char *argv[])
{
    if(strcmp(argv[0], "w00t") != 0)
      std::cout << "wrong!\n";
    
    if(std::string(argv[0]) != "w00t")
      std::cout << "wrong!\n";
      
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
Bedankt voor de reacties, waarschijnlijk is mijn probleem nu opgelost. :evil: :p
Thanks!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan