Argumenty wiersza poleceń c++

Argumenty wiersza poleceń c++
D1
  • Rejestracja:około 6 lat
  • Ostatnio:około 6 lat
  • 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() ;
}
edytowany 1x, ostatnio: kq
Bartosz36
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 4 lata
  • 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?


ExtendedVector czyli std::vector<T> z wygodą List<T> z .NET (ForEach, FindAll, itd...)
D1
  • Rejestracja:około 6 lat
  • Ostatnio:około 6 lat
  • 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:ponad 10 lat
  • Ostatnio:prawie 4 lata
  • Postów:348
0

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


ExtendedVector czyli std::vector<T> z wygodą List<T> z .NET (ForEach, FindAll, itd...)
D1
  • Rejestracja:około 6 lat
  • Ostatnio:około 6 lat
  • 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:prawie 12 lat
  • Ostatnio:2 minuty
  • Postów:1027
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:około 6 lat
  • Ostatnio:około 6 lat
  • 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.

edytowany 1x, ostatnio: kq
darkbit
  • Rejestracja:ponad 20 lat
  • Ostatnio:dzień
  • 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.