und wie würde der code dann aussehen wenn ich die datein einsetze weil wenn ich statt ul mein kompiliertes programm einsetze sagt er mir das er die .in und die .out files nicht findet wo und wie muss ich die im code einbinden?
C Programmausgabe vergleichen
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
Beschäftige dich mal mit der Bash-Shell...
So wie ich das geschrieben habe gelten folgende Bedingungen:
-dein kompiliertes Programm muss "u1" heißen und im selben Ordner liegen wie die *.in und *.out Dateien
-das Shell-Skript muss auch im gleichen Ordner liegenAMD Ryzen 7 PRO 5750G, 32 GB RAM, 1 TB NVMe SSD, RTX 3060, Win 11
iPad Air 2 64 GB, iPhone 13 128 GB
UPS: APC Back-UPS Pro 900VA BR900G-GR
"Der Erwerb von Reichtum ist nicht mehr die treibende Kraft in unserem Leben. Wir arbeiten, um uns selbst zu verbessern – und den Rest der Menschheit." (Jean-Luc Picard)
Feedback an AppleDieser Beitrag wurde bereits 1 mal editiert, zuletzt von raymond ()
-
Das ergebniss was du gepostet hast zeigt dir aber auch nicht an ob die datein gleich groß sind oder nicht oder?
weil in windows hab ich meine bat ausgeführt und er hat mir nach dem test gesagt die Datein sind identisch oder die datein sind unterschiedlich groß so in die richtung hätte ich das gern nur auf mac^^ -
kennst du vielleicht eine gute seite wo man sich mit bash Shell beschäftigen kann?
-
Shell-Script
Bekomm ich jetzt von deiner Schule eine 1?
Ich habe mir ein Buch bei ebay günstig gekauft. Da sind viele getestete Beispiele drin. Im Internet muss man sich die Infos von mehreren Seiten zusammensuchen. Das kann sehr anstrengend sein. Als ich mit Skripten angefangen habe, möchte ich nichts mehr mit C usw. zu tun haben. Auf kompilieren habe ich einfach keinen Bock mehr und für kleinere und mittelgroße Aufgaben kann man sehr gut Skripten.AMD Ryzen 7 PRO 5750G, 32 GB RAM, 1 TB NVMe SSD, RTX 3060, Win 11
iPad Air 2 64 GB, iPhone 13 128 GB
UPS: APC Back-UPS Pro 900VA BR900G-GR
"Der Erwerb von Reichtum ist nicht mehr die treibende Kraft in unserem Leben. Wir arbeiten, um uns selbst zu verbessern – und den Rest der Menschheit." (Jean-Luc Picard)
Feedback an AppleDieser Beitrag wurde bereits 6 mal editiert, zuletzt von raymond ()
-
Werd dich für ne 1 vorschlagen aufjedenfall kämpf noch bisschen mit dem skript aber glaub habs jetzt halbwegs verstanden und bring es auch zum laufen Vielen vielen vielen Dank für deine Hilfe ich glaub da wär ich noch tage und wochen dran gesessen
-
So das ShellScript läuft jetzt und funktioniert auch soweit nur hab ich jetzt das problem das er mir immer einen Fehler ausgibt wenn ich die Selben datein mit FileMerge vergleiche sagt er mir dass es unterschiedliche LineEndings sind und somit nicht identisch. So wie kann ich dieses Problem lösen habe Xcode schon gesagt das er mit CRLF kompilieren soll aber irgendwie tut er das dann doch nicht. Kann mir wer weiter helfen?
Manuel -
Da waren mehrere Fehler drin (\r\n ist die richtige Escape-Sequenz für Windows (da dein Lehrer sehr wahrscheinlich die *.out unter Windows erstellt hat): de.wikipedia.org/wiki/Zeilenumbruch). Fehler waren auch noch beim Doppelpunkt.
So nun die Lösung:
1)
C-Quellcode
2)
3)
AMD Ryzen 7 PRO 5750G, 32 GB RAM, 1 TB NVMe SSD, RTX 3060, Win 11
iPad Air 2 64 GB, iPhone 13 128 GB
UPS: APC Back-UPS Pro 900VA BR900G-GR
"Der Erwerb von Reichtum ist nicht mehr die treibende Kraft in unserem Leben. Wir arbeiten, um uns selbst zu verbessern – und den Rest der Menschheit." (Jean-Luc Picard)
Feedback an AppleDieser Beitrag wurde bereits 5 mal editiert, zuletzt von raymond ()
-
So also ein letztes mal brauch ich noch eure Hilfe mein script funktioniert so weit und sieht so aus:
#!/bin/bash
z=1
for i in /Users/Manuel/Documents/Xcode/u4_largest/build/Debug/*.in ; do
/Users/Manuel/Documents/Xcode/u4_largest/build/Debug/u4_largest < $i > /Users/Manuel/Documents/Xcode/u4_largest/build/Debug/out$z;
z=$[$z+1]
done;
# Vergleiche Dateien
zz=1
for l in /Users/Manuel/Documents/Xcode/u4_largest/build/Debug/*.out ; do
echo
echo Vergleiche $l mit /Users/Manuel/Documents/Xcode/u4_largest/build/Debug/out$zz:
diff -b $l /Users/Manuel/Documents/Xcode/u4_largest/build/Debug/out$zz;
if [ $? == 0 ]; then
echo Die Dateien sind Identisch !
else
echo Die Dateien sind unterschiedlich groß !
fi;
zz=$[$zz+1]
done;
Habe jetzt bei diff noch -b hinzugefügt um den white space zu ignorieren sprich die Line endings jetzt hab ich heute mit unserem prof darüber gerdet und er meinte das es besser wäre die testdateien vorher zu konvertieren er meinte es ca so irgendwie
tar -d '\r' <$l> KonvertierteTestfile.txt
weis nicht ob das so richtig ist weil es so einfach nicht funktionieren will.
ich will einfach nur die erhaltenen testfiles einlesen alle \r rauslöschen und in einer anderen datei wieder speichern damit ich das problem mit den line endings nicht mehr habe.
Manuel -
Was möchtest du mit tar? tar nutzt man um Dateien zu packen oder zu entpacken:
unixhelp.ed.ac.uk/CGI/man-cgi?tar
Hier gibts zwar die Option "-d", aber bei dem tar unter Mac OS X scheinbar nicht:
Ich verstehe nun leider wieder nicht dein Problem: es läuft doch. Wenn die .out Dateien am Ende halt eine Leerzeile haben, muss dein Programm am Ende auch eine Leerzeile erzeugen.
Da es ja mit "\r\n" wunderbar funktioniert, weiß ich nun nicht, warum du jetzt irgendwas ignorieren möchtest.
Wenn dein Lehrer selbst in der Lösung (also die *.out Dateien) keine Leerzeilen haben möchte, muss er selbst sein Programm anpassen und euch die richtigen Lösungen, bzw. was er sehen möchte, schicken.
PS: du hast am Anfang was von "Schule" geschieben und nun auf einmal Prof? Also Fachhochschule? Da wurde einer in meiner Semestergruppe schon ganz bös' vom Prof angemacht, wo er gesagt hat: Schule.AMD Ryzen 7 PRO 5750G, 32 GB RAM, 1 TB NVMe SSD, RTX 3060, Win 11
iPad Air 2 64 GB, iPhone 13 128 GB
UPS: APC Back-UPS Pro 900VA BR900G-GR
"Der Erwerb von Reichtum ist nicht mehr die treibende Kraft in unserem Leben. Wir arbeiten, um uns selbst zu verbessern – und den Rest der Menschheit." (Jean-Luc Picard)
Feedback an AppleDieser Beitrag wurde bereits 6 mal editiert, zuletzt von raymond ()
-
Original von NewApfel
Habe jetzt bei diff noch -b hinzugefügt um den white space zu ignorieren sprich die Line endings jetzt hab ich heute mit unserem prof darüber gerdet und er meinte das es besser wäre die testdateien vorher zu konvertieren er meinte es ca so irgendwie
tar -d '\r' <$l> KonvertierteTestfile.txt
weis nicht ob das so richtig ist weil es so einfach nicht funktionieren will.
ich will einfach nur die erhaltenen testfiles einlesen alle \r rauslöschen und in einer anderen datei wieder speichern damit ich das problem mit den line endings nicht mehr habe.
Manuel
Acho du meinst: "tr -d \r <infile >outfile"
(Quelle: sed.sourceforge.net/sed1line_de.html)
Bei mit funktioniert das auch nicht. Aber meiner Meinung nach, ist das Aufgabe des Profs.AMD Ryzen 7 PRO 5750G, 32 GB RAM, 1 TB NVMe SSD, RTX 3060, Win 11
iPad Air 2 64 GB, iPhone 13 128 GB
UPS: APC Back-UPS Pro 900VA BR900G-GR
"Der Erwerb von Reichtum ist nicht mehr die treibende Kraft in unserem Leben. Wir arbeiten, um uns selbst zu verbessern – und den Rest der Menschheit." (Jean-Luc Picard)
Feedback an AppleDieser Beitrag wurde bereits 1 mal editiert, zuletzt von raymond ()
-
Teilen
- Facebook 0
- Twitter 0
- Google Plus 0
- Reddit 0