• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wywoływanie programu z konsoli w C++

0 głosów
879 wizyt
pytanie zadane 3 maja 2020 w C i C++ przez kupson3697 Użytkownik (610 p.)
edycja 3 maja 2020 przez kupson3697

Siemka. Mam problem z programem. U mnie wszystko śmiga, wywołuje go w konsoli z odpowiednimi argumentami, lecz niestety sprawdzarka wykładowcy zwróciła błąd. Jestem w kropce, bo program śmiga, przetestowałem go na wszelkie możliwe sposoby i nic. Ma ktoś jakiś pomysł? 

 

 

#include <iostream>
#include <fstream>


int main(int argc, char *argv[])
{

    std::fstream input (argv[2]);
    std::fstream output (argv[3]);

	int key = atoi(argv[1]);


    char c;

    while(input.get(c)){
      if(isalpha(c)){

        int offset = 65;

        if(islower(c)){
            offset = 97;
        }

        int letter = (((int)c - offset + key)%26) + offset;

         if(letter < offset){
            letter+=26;
        }

        output << (char)letter;
        } else {
            output << c;
        }
      }

	output.close();
	input.close();

	return 0;
}

 

EDIT2:

Prawidłowy kod błędu:

Execution arguments were:
['1', 'mgoqpx.txt', 'irivoq.txt']
Input file mgoqpx.txt was:
['']
Output file irivoq.txt not found
EXECUTION ERROR
1
komentarz 3 maja 2020 przez Michał Gibas Pasjonat (19,630 p.)
Ten program wykładowcy wypluwa co jest błędem? Może przekroczenie czasu/zasobów pamięci dla dużych danych wejściowych, albo wyjście jest źle sformatowane? Czasami brak jakiegoś końca linii w programie może nie zaliczyć rozwiązania. Może sprawdzarka wykładowcy jest źle napisana, tak też bywa ;)
komentarz 3 maja 2020 przez kupson3697 Użytkownik (610 p.)
Przepraszam najmocniej, zapomniałem wkleić błąd :-) Czy przyczyną może być brak odstępów między liczbami? I wtedy sprawdzarka wczytuje "całą długą liczbę" zamiast poszczególnych liczb..? Jedyne co mi do głowy przyszło, bo według mnie każda liczba jest iterowana oddzielnie..
1
komentarz 3 maja 2020 przez Michał Gibas Pasjonat (19,630 p.)
Wydaje mi się, że własnie o ten odstęp chodzi. Trzeba próbować. Zauważyłem też, że prawdopodobnie na końcu wyjścia nie ma znaku końca lini, ale może to nie robi problemu żadnego.
komentarz 3 maja 2020 przez kupson3697 Użytkownik (610 p.)
edycja 3 maja 2020 przez kupson3697

Poprzedni błąd był z innego programu, z którym miałem problem, teraz jest wszystko w porządku,.

Chodzi o to, że w treści zadania jest użyte do wywołania 4 argumenty, a sprawdzarka użyła trzech. Pytanie za 100pkt dlaczego? cool

EDIT:

Jakby kiedyś ktoś trafił na podobne problemy z plikami to podpowiadam. Używając fstream plik wyjściowy się nie stworzy, jedynie możemy przepisać do niego dane jeśli jest już utworzony. Jeśli chcemy wczytać dane z pliku i "wypluć" go do pliku, który stworzy się automatycznie, koniecznie musi być "ofstream". 

komentarz 3 maja 2020 przez DragonCoder Nałogowiec (36,500 p.)
W tresci sa sa 3 aegumenty. Liczba przesuniec oraz 2 pliki tekstowe.

Btw w tresci jest napisane, program dolaczs tylko fstream oraz cstdlib ;) iostream sie nie zalicza do tego

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 784 wizyt
0 głosów
3 odpowiedzi 1,598 wizyt
0 głosów
2 odpowiedzi 1,631 wizyt
pytanie zadane 24 marca 2018 w C i C++ przez Nimplex Początkujący (460 p.)

93,427 zapytań

142,421 odpowiedzi

322,649 komentarzy

62,787 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...