|
|
| Autor |
Nachricht |
Iced.Earth Newbie


Anmeldungsdatum: 28.10.2005 Beiträge: 30
|
Verfasst am: 20 Nov 2007 - 10:38:58 Titel: Einfaches C Programm |
|
|
Hallo bin Anfänger in C. Ich will ein Programm schreiben das meinen Namen einliest und ihn dann ausgibt, also in der Art:
int n, m;
scanf ("%d %d", &n, &m)
printf ("Dein Name ist %d %d\n", n, m);
Nun funktioniert das jedoch nur für Zahlen. Wie kann Ich lange Wörter einlesen? |
|
 |
Annihilator Valued Contributor


 Anmeldungsdatum: 18.05.2007 Beiträge: 6395 Wohnort: (hier nicht mehr aktiv)
|
Verfasst am: 20 Nov 2007 - 12:19:26 Titel: |
|
|
In C gar nicht mal so trivial. Dazu musst du erstmal wissen: Es gibt in C keine Strings; lediglich Charakter-Arrays. Demnach könnte eine Variable für deinen Vornamen so aussehen:
Jetzt gibt es die tolle Funktion cin.getline, die eine Zeichenkette bis zur genannten Größe einliest:
| Code: |
cin.getline(vorname, 256)
|
Damit sollte es glaube ich funktionieren. Ich weiß jetzt aber nicht genau, ob und welche Header-Datein du einbinden musst... |
|
 |
al3ko Inaktiver Account

Anmeldungsdatum: 08.11.2006 Beiträge: 3148
|
Verfasst am: 20 Nov 2007 - 12:34:24 Titel: |
|
|
Hallo Iced-Earth,
machst du das freiwillig oder lernt ihr die Sprache in der Schule (Informatik), Arbeit etc?
Wenn es für dich nur "just4fun" ist, würde ich dir C++ oder gar C# empfehlen. |
|
 |
Iced.Earth Newbie


Anmeldungsdatum: 28.10.2005 Beiträge: 30
|
Verfasst am: 20 Nov 2007 - 15:00:30 Titel: |
|
|
| Ich habe einen C++ Compiler, den ich aber in C benutzen soll (für Studium). Werde es mit dem Befehl mal versuchen |
|
 |
dönis Senior Member


Anmeldungsdatum: 31.03.2006 Beiträge: 4740
|
Verfasst am: 20 Nov 2007 - 15:43:07 Titel: |
|
|
| al3ko hat folgendes geschrieben: |
Wenn es für dich nur "just4fun" ist, würde ich dir C++ oder gar C# empfehlen. |
Wieso?
Bei uns läuft die komplette Softwaretechnik in C, bis auf nen wirklich sehr kurzen Einstieg in JAVA.
Das würde man ja nicht machen, wenn C++ oder C# wirklich soviel besser und C total abgeschrieben wäre
Zum Thema:
Die Headerdatei ist die <string.h>
Du kannst deinen Namen auch mit der Funktion
gets() also get string einlesen und mit
puts() wieder ausgeben
Wir haben das allerdings immer mit
scanf("%s",&feldname) gemacht (mit dem Adressoperator & bin ich jetzt allerdings unsicher)
und mit
printf("%s",feldname) wieder ausgegeben...
Wie immer du es machst, du musst peinlichst genau drauf achten, dass deine Eingabe auch ins Feld passt. C prüft das nicht... |
|
 |
Annihilator Valued Contributor


 Anmeldungsdatum: 18.05.2007 Beiträge: 6395 Wohnort: (hier nicht mehr aktiv)
|
Verfasst am: 20 Nov 2007 - 15:58:31 Titel: |
|
|
| dönis hat folgendes geschrieben: |
... Bei uns läuft die komplette Softwaretechnik in C, bis auf nen wirklich sehr kurzen Einstieg in JAVA.
Das würde man ja nicht machen, wenn C++ oder C# wirklich soviel besser und C total abgeschrieben wäre ... |
Anscheinend hast du keine Ahnung... Sagen dir Stichworte wie Klassenkonzept bzw. objektorientierte Programmierung und Funktions-/Operatoren-Überladung irgend etwas ?
Und: Wo ist denn 'bei uns' ? |
|
 |
al3ko Inaktiver Account

Anmeldungsdatum: 08.11.2006 Beiträge: 3148
|
Verfasst am: 20 Nov 2007 - 16:43:24 Titel: |
|
|
Ich wollte niemanden zu Nahe treten, als ich sagte, C# oder C++ seien besser als alles andere. Als ich mich aber mit C# beschäftigt habe, habe ich mich nicht nur mit dem Syntax, sondern auch mit der Vergangenheit und Gegenwart der Programmiersprachen und Entwicklungsumgebungen beschäftigt. Allgemein bin ich zu dem Fazit gekommen - und damit stehe ich anscheinend nicht alleine dar - dass in der heutigen Zeit die OOP immer mehr an Bedeutung gewinnt. Der Vorteil im .NET ist doch, dass verschiedene Sprachen zueinander kompatibel sind (Ein C# Programm unterstützt Klassen aus .NET C++). Das heißt im Klartext:
Unter .NET können sich drei Programmierer treffen, wobei jeder eine andere Sprache perfekt beherrscht (Z.B. C#, C++, VB). Sie arbeiten zusammen an einem großen Programm und teilen sich die Aufgaben. Jeder bearbeitet seine Aufgabe in einer eigenen Klasse, am Ende werden die Klassen zusammengefügt und das Programm läuft. Und das finde ich sehr bemerkenswert, denn so kann doch die Flexibilität gesteigert werden, oder siehst du das nicht so, dönis?
Stell dir mal vor, wir würden später zusammen arbeiten und hätten als Aufgabe, eine Windkraftanlage durch ein Programm zu steuern. Du kannst "nur" C und ich "nur" C#. Da hätten wir doch dann ein Problem, oder?
Darüber hinaus würde ich auch gerne wissen, was du mit "unserer kompletten Softwaretechnik" meinst?
MfG
al3ko |
|
 |
dönis Senior Member


Anmeldungsdatum: 31.03.2006 Beiträge: 4740
|
Verfasst am: 20 Nov 2007 - 22:52:22 Titel: |
|
|
Naja den Großteil unserer Programmiererfahrung im Grundstudium machen wir eben in C. Verkettete Listen, Sortier- und Suchalgorithmen usw.
Dazu dann eben noch ein ganz kurzer Ausflug in JAVA und das wars dann auch schon mit den höheren Programmiersprachen bei uns Energietechnikern. Überlege deswegen auch, ob ich zu Prozessinformatik/Automatisierungstechnik wechsele...
Uns wird immer das Gegenteil erzählt. OOP schön und gut, aber auf der Ebene, in der Energietechniker und Automatisierer (Mikroprozessoren usw.) arbeiten, solls auf möglichst kurzen und effizienten Quellcode ankommen. Und da soll C zu den Besten gehören... |
|
 |
toobee Junior Member


Anmeldungsdatum: 21.10.2007 Beiträge: 76
|
Verfasst am: 25 Nov 2007 - 14:43:49 Titel: |
|
|
| dönis hat folgendes geschrieben: |
Naja den Großteil unserer Programmiererfahrung im Grundstudium machen wir eben in C. Verkettete Listen, Sortier- und Suchalgorithmen usw.
Dazu dann eben noch ein ganz kurzer Ausflug in JAVA und das wars dann auch schon mit den höheren Programmiersprachen bei uns Energietechnikern. Überlege deswegen auch, ob ich zu Prozessinformatik/Automatisierungstechnik wechsele...
Uns wird immer das Gegenteil erzählt. OOP schön und gut, aber auf der Ebene, in der Energietechniker und Automatisierer (Mikroprozessoren usw.) arbeiten, solls auf möglichst kurzen und effizienten Quellcode ankommen. Und da soll C zu den Besten gehören... |
ja, c ist "high-lvl assembler" wie man es scherzahft manchmal nennt. du musst keine maschinenbefehle kennen, kannst aber fast so effizienten quellcode schreiben.
wirst dafür aber auch in die verwantwortung genommen "du weist was du tust" array grenzen werden nicht geprüft. allocierter speicher muss von dir auch wieder frei gegeben werden und und und.
c# und java sind da pflegeleichter zur kosten der performance, wer wirklich hoch effiziente programme schreiben will kommt c/c++ nicht vorbei. einfache anwendungen werden besser in java/c# geschrieben, sie sind einsteigerfreundlicher liefern einen gigantischen overhead an algos die man mal gebrauchen könnte und erledigen speichermanagment etc. fast komplett selbstständig. |
|
 |
|