Wpis z mikrobloga

mam problem bo podaje jakis jeden test do programu i program zwraca mi poprawy wynik ale jak odpale program i podaje mu ten sam input z pliku (./program < plik) (w plik mam ten sam test) to juz zwraca mi inny wynik, zly wynik. w c++ co moze byc tego przyczyna?
#naukaprogramowania #linux
  • 9
@agsbajahs: dodaj w programie wypisywanie tego co wczytał. Pewnie jest jakaś różnica.

Na przykład:
- inne kodowanie (UTF-8, ISO),
- różnica w liczbie znaków końca linii (np. nie ma gdzieś entera, a gdzieś jest)
- różnica w typie znaków końca linii (CRLF, \r\n),
- jeśli plik jest w kodowaniu UTF-8, to pierwszym znakiem jest BOM (spróbuj UTF-8 bez BOM).
@agsbajahs: nie znam za bardzo C++, ale wydaje mi się, że zwykłym cin nie da się wczytać jako argument.

Zainteresuj się tym co masz w mainie:
int main(int argc, const char* argv[])
Spróbuj stąd wczytać pierwszy argument:
argv[0]

@agsbajahs: ewentualnie inne rozwiązanie jeśli nie potrzebujesz takiego. Wczytujesz nazwę pliku, a w programie otwierasz ten plik i dopiero z niego wczytujesz. No ale to nie rozwiązuje problemu tak jak chcesz.
@mk321: wydaje mi sie ze predzej problem jest z tym cin.ignore i getlinem bo ja tutaj przekazuje tylko zawartosc pliku jako arugmenty i gdybym mial dwa zwykle stringi i dwa std::cin bez getline to by dzialalo, ten getline mi tylko dziala jak recznie wprowadzam, a ma problem jak z pliku