• 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++

Object Storage Arubacloud
0 głosów
485 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,610 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,610 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 705 wizyt
0 głosów
3 odpowiedzi 1,303 wizyt
0 głosów
2 odpowiedzi 1,055 wizyt
pytanie zadane 24 marca 2018 w C i C++ przez Nimplex Początkujący (460 p.)

92,584 zapytań

141,434 odpowiedzi

319,671 komentarzy

61,968 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...