Argumenty wiersza poleceń c++

Argumenty wiersza poleceń c++
D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 14
0

Witam wszystkich
Na wstępie powiem że jestem zielony w c++.
Napisałem prosty program który miał wpisać słowo podane w wierszu poleceń (argument funkcji main) i nie wiem czemu program tego nie chce zrobić może jakiś bardziej doświadczony programista mógłby by mi to wytłumaczyć.
A to program

Kopiuj
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int main(int argc,char* argv[])
{
fstream plik;
plik.open("test.txt",ios::out);
plik<<argv[1];                               // Tu ma wpisać ale tego nie robi
cout<<argv[1];	                            //Ale tutaj wypisuje to co ma wpisać
plik.close() ;
}
Bartosz36
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 348
0

Z ciekawości odpaliłem ten programik u siebie i działa bez problemu...
Jesteś pewien, że wywołujesz swój program z konsoli? Że wywołujesz go w prawidłowy sposób? W jaki?

D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 14
0
Bartosz36 napisał(a):

Z ciekawości odpaliłem ten programik u siebie i działa bez problemu...
Jesteś pewien, że wywołujesz swój program z konsoli? Że wywołujesz go w prawidłowy sposób? W jaki?

Wydaje mi się że dobrze ale pewny nie jestem, wywołuje go tak:
Włączam konsole cmd wpisuje nazwę ścieszkę dostępu potem spacja i jakieś słowo.

Bartosz36
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 348
0

A czy w konsoli widzisz to, co powinno wypisać Ci cout << argv[1], które masz w kodzie?

D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 14
0
Bartosz36 napisał(a):

A czy w konsoli widzisz to, co powinno wypisać Ci cout << argv[1], które masz w kodzie?
Dokładnie tak specjalnie dodałem tą linijkę żeby sprawdzić czy dobrze wpisuje. I to co wpisze jest wypisywane na ekranie ale do pliku nie jest wpisywane.

enedil
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1028
0

U mnie także działa poprawnie. Generalnie ten problem nie może mieć związku z argumentami linii poleceń. Sprawdź, czy w ogóle możesz pisać do plików.

D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 14
0

Jak napiszę np taki program:

Kopiuj
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int main()
{
	string x="test";
fstream plik;
plik.open("test.txt",ios::out);
plik<<x;	
plik.close() ;
}

to wszytko działa bez problemu i wpisuje słowo "test" do pliku test.txt
ale wcześniejszy program nadal u mnie nie działa.

darkbit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: ~Koszalin
0

A sprawdź w ogóle czy otwarcie pliku się powiodło.
fstream::is_open

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.