2017-01-27 2 views
1

Ich habe derzeit eine Datei namens assign1.c, die kompiliert und korrekt ausgeführt wird, wenn ich es mit SSH ausführen, um eine Verbindung zu einem Remote-Linux-Terminal herzustellen.C Programmierfehler, wenn ich die Ausgabe einer c-Datei in eine andere Datei umleiten

#include <stdio.h> 
#define PI 3.141593 

int main(){ 
    int degrees = 0; 
    double radians; 

    printf("Degrees to Radians \n"); 

    degrees = 0; 
    radians = degrees*PI/180; 
    printf("%6i %9.6f \n", degrees, radians); 

    degrees = 10; 
    radians = degrees*PI/180; 
    printf("%6i %9.6f \n", degrees, radians); 

    while(degrees < 350){ 
     degrees +=10; 
     radians = degrees*PI/180; 
     printf("%6i %9.6f \n", degrees, radians); 
    } 

    degrees = 360; 
    radians = degrees*PI/180; 
    printf("%6i %9.6f \n", degrees, radians); 

} 

I verwendet ./assign1> prog1.c zu umleiten und die Ausgabe in einer anderen Datei prog1.c

Degrees to Radians 
    0 0.000000 
    10 0.174533 
    20 0.349066 
    30 0.523599 
    40 0.698132 
    50 0.872665 
    60 1.047198 
    70 1.221731 
    80 1.396264 
    90 1.570796 
    100 1.745329 
    110 1.919862 
    120 2.094395 
    130 2.268928 
    140 2.443461 
    150 2.617994 
    160 2.792527 
    170 2.967060 
    180 3.141593 
    190 3.316126 
    200 3.490659 
    210 3.665192 
    220 3.839725 
    230 4.014258 
    240 4.188791 
    250 4.363324 
    260 4.537857 
    270 4.712389 
    280 4.886922 
    290 5.061455 
    300 5.235988 
    310 5.410521 
    320 5.585054 
    330 5.759587 
    340 5.934120 
    350 6.108653 
    360 6.283186 

jedoch zu senden, wenn ich versuche, gcc zu kompilieren -o prog1 prog1.c I erhalte eine Fehlermeldung.

Ich bin neu in C-Programmierung und habe immer noch Probleme, die Fehlermeldungen zu verstehen, versteht jemand meine Fehlermeldung?

+2

Wenn Sie es in die Quelldatei umleiten, * überschreiben Sie * die ursprüngliche Quelldatei mit der Ausgabe des ersten Programms. Sie wollten wahrscheinlich die Ausgabe vom ersten Programm in das zweite (kompilierte) Programm pipettieren, wie './assign1 | ./prog1' –

Antwort

0

Ich bin ein wenig verwirrt über das, was Sie erreichen wollen, also erzähle ich Ihnen die ganze Geschichte.

So haben Sie ein Programm, geschrieben in C (d. H. Eine Textdatei). Da der Computer keinen Text versteht, müssen wir ihn in eine Computersprache übersetzen. Also, Sie das Programm assign1.c haben, können Sie das in einer ausführbaren Datei kompilieren (dh C in eine maschinenlesbare Form übersetzen):

gcc -o assign1 assign1.c 

Dann führen Sie ASSIGN1:

./assign1 

, was eine Menge von Ausgaben auf dem stdout erzeugt (dh auf dem Bildschirm). Sie können das in eine Datei schreiben eine Umleitung mit:

./assign1 > prog1.c 

Nun wird die Datei prog1.c eine einfache Textdatei, die die Ausgabe von Ihrem Programm erzeugt wird, enthält (die Erweiterung ist irrelevant). Der Versuch, das mit gcc zu kompilieren, ist nutzlos, weil es kein gültiges C-Programm ist, sondern die Ausgabe von Ihrem Programm enthält.

Nun, was mit dieser Datei zu tun? Nun, was immer du willst. Sie können einen Blick an ihm nehmen:

Katze prog1.c

oder

weniger prog1.c

(q von weniger zu beenden), oder es an einen Freund oder senden .. .was auch immer.

Verwandte Themen