Przekierowywanie wejścia.

0

Witam ;)
oto kolejne z moich typowo lamerskich pytań.Uczę się C z ksiązki Praty 'Szkoła Programowania'. Aktualnie jestem w rozdziale o przekierowywaniu we/wy. Najpierw pisze programik ktory powtarza wejscie. I teraz autor chce aby programik powtorzyl wejscie, ale z pliku, a nie klawiatury.Autor pisze tak: "Aby go uruchomić, wpisz nazwe pliku wykonywalnego: echo_eof.exe ." Rozumiem,ze chodzi o to aby uruchomić program z windowsa opcja 'uruchom' ? bo aby w program pobral dane z pliku zamiast klawiatury mam wpisac cos takiego:
echo_eof.exe < nazwapliku.txt
Jednak program nic nie pobiera. W czym problem?
Mam Windows 7. ;]
a program wygląda tak:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
 int c;
 while((c=getchar()) != EOF)
 putchar(c); 
  system("PAUSE");	
  return 0;
}
1

Nie tyle z opcji uruchom, co z terminala. Start->Uruchom wpisz cmd, przejdź do swojego katalogu używając polecenia cd i odpal program: program < plik.
I wyrzuć to system("PAUSE"); ;)

0

OK ;) bardzo dobrze ;d
program dziala w ten sposób,że albo odczytuje co jest w pliku, albo przypisuje mu to na sobie nawypisuje w konsoli.
Tylko troche mnie irytuje to,że gdy pisze cos,potem wciskam ctrl+z i zostaje umieszczone to w pliku to w pierwszym wersie pojawia mi sie:
"Aby kontynuowa†, nacinij dowolny klawisz . . . "
a w drugim to co wpisałem. Da się coś z tym zrobić? ;)
I dziękuje kolego wyżej za aktywność i pomoc, nie tylko w tym wątku ;)

0

A wyrzuciłeś system("PAUSE");?

0
SzeWa napisał(a)

a w drugim to co wpisałem. Da się coś z tym zrobić? ;)

A co chcesz z tym zrobić?

Normalnie ctr-z wysyła do procesu sygnał a nie ciąg znakowy.

0

@Arz, chyba nie zrozumiałeś pytania. Chodzi o to że to co wpisał pojawia się dopiero w drugim wierszu. Tekst "Aby kontynuować ..." wpisuje polecenie system("PAUSE");

0

Acha, najpierw ma komunikat systemowy, myślałem że ma dwa różne przypadki ;)

Pewnie przez buforowanie, plus fakt że system idzie osobnym procesem.]

Dodane: To o co chodzi z tym ctrl+z ?

0

Robie to wg podręcznika ;) ctrl+z to kombinacja klawiszy która konczy dzialanie progrmu/ sugeruje koniec pliku. Chodzi o to,że w petle mam dopoki != EOF. Czyli EOF(end of file) to wlasnie ten skrot klawiszowy. ;) Bynajmniej tak zrozumiałem z ksiązki.

Juz mi to działa.. Po prostu otworzylem sam pliczek main(korzystam z dev c++) i usunalem z niego to "PAUSE", po czym wzialem na zapisz. Jednak caly czas było źle.. Teraz usunałem wszystkie pliki, stworzylem nowy projekt i działa jak trzeba.

Dzięki ;)

0

OKi, no u mnie ctrl+z akurat robi coś innego ;) Pewnie ze względu na inny system ;)

No mniejsza z tym, już nie wnikam, skoro działa. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1