2013-10-19 22 views

Odpowiedz

9

Korzystanie przekierowania wysyła zawartość pliku wejściowego do standardowego wejścia, więc trzeba czytać ze standardowego wejścia wewnątrz kodu, więc coś jak (sprawdzanie błędów pominięte dla jasności)

#include <stdio.h> 

#define BUFFERSIZE 100 

int main (int argc, char *argv[]) 
{ 
    char buffer[BUFFERSIZE]; 
    fgets(buffer, BUFFERSIZE , stdin); 
    printf("Read: %s", buffer); 
    return 0; 
} 
0

You dont używać fgets, należy użyć gets

Przekierowanie oznacza tylko, że Twój wkład Terminal będzie zawartość pliku. Ale twój program nie wie, skąd się bierze, ponieważ jest wykonywany przez system operacyjny.

+2

"use gets" nigdy nie jest właściwą odpowiedzią. Istnieje powód, dla którego funkcja została wycofana w C99 i usunięta w C11. –

2

1.) jesteś blisko stdin następnie przypisz do niego inną obsługę plików 2.) zmień stdin na inną obsługę plików używając funkcji dup2, którą możesz osiągnąć

Powiązane problemy