Warum kostenlos registrieren?

Nur als registriertes Mitglied hast Du vollen Zugriff auf alle Funktionen unserer Website. So kannst Du eigene Fragen stellen und hast die volle Übersicht über neue interessante Themen im Forum.
Jetzt kostenlos registrieren.

Login


C Programm

Alles über Betriebssysteme, Anwenderprogramme und andere Software-Probleme.

C Programm

Beitragvon nicky777 am 14.09.2005, 20:52

Hi Leute,
Hier ist ein C Programm, was ich jetzt geschrieben habe (es ist mein erstes und ich lerne das erst seit sehr kurzer Zeit) und ich weiß echt nicht, wie ich einfachen Text in einer Variable speichern kann... in VB ging das mit String... aber hier???


Hier ist erst einmal mein Code:



Code: Alles auswählen
#include <stdio.h>
#include <conio.h>

void main(void)



{
     
float Ladung,Zeit,Strom;
string entscheid;
     
     
printf ("Guten Tag, dieses Programm dient dazu mit Hilfe der J = Q/T \nFormel die Stromstärke,\ndie Ladung oder die Zeit zu berechnen. Bitte drücken Sie I,\nwenn Sie die Stromstärke berechnen wollen,\nQ wenn sie die Ladung berechnen wollen oder t wenn sie die Zeit berechnen wollen!");
scanf ("%f",&Entscheid);



If (Entscheid = "Q" )
{
printf ("Geben Sie bitte die Größe der Ladung in Coulomb an!");
scanf ("%f",&Ladung);
printf ("Geben Sie bitte die Größe der Stromstärke in milliAmpere an!");
scanf ("%f",&Strom);

Zeit=Strom*Ladung
printf ("Die Ladung beträgt %f c",Ladung")
}

If Entscheid = I
{
printf ("Geben Sie bitte die Größe der Ladung in Coulomb an!");
scanf ("%f",&Ladung);
printf ("Geben Sie bitte die Zeit in Sekunden an!");
scanf ("%f",&Zeit);

Strom=Ladung/Zeit
printf ("Die Zeit beträgt %f Sek",Zeit")
}



If Entscheid = t
{
printf ("Geben Sie bitte die Größe der Stromstärke in milliAmpere an!");
scanf ("%f",&Strom);
printf ("Geben Sie bitte die Zeit in Sekunden an!");
scanf ("%f",&Zeit);

Strom=Ladung/Zeit
printf ("Die Stromstärke beträgt %f c",Strom")
}






getch();
return 0;
}






Danke für alle Antworten, was falsch ist und wies mit dem Text geht :-)

bye bye
David777
nicky777
 
Beiträge: 491
Registriert: 02.12.2004, 17:37
Wohnort: Siegen


Beitragvon nicky777 am 14.09.2005, 21:09

Aber zumindest mit Zahlen müsste es ja dann gehen:




Code: Alles auswählen
#include <stdio.h>
#include <conio.h>

main()



{
     
float Ladung,Zeit,Strom, Entscheid;

     
     
printf ("Guten Tag, dieses Programm dient dazu mit Hilfe der J = Q/T \nFormel die Stromstärke,\ndie Ladung oder die Zeit zu berechnen. Bitte drücken Sie 1,\nwenn Sie die Stromstärke berechnen wollen,\n2 wenn sie die Ladung berechnen wollen oder 3 wenn sie die Zeit berechnen wollen!");
scanf ("%f",&Entscheid);



If (Entscheid = 1);
{
printf ("Geben Sie bitte die Größe der Ladung in Coulomb an!");
scanf ("%f",&Ladung);
printf ("Geben Sie bitte die Größe der Stromstärke in milliAmpere an!");
scanf ("%f",&Strom);

Zeit=Strom*Ladung;
printf ("Die Ladung beträgt %f c",Ladung);
}

If (Entscheid = 2);
{
printf ("Geben Sie bitte die Größe der Ladung in Coulomb an!");
scanf ("%f",&Ladung);
printf ("Geben Sie bitte die Zeit in Sekunden an!");
scanf ("%f",&Zeit);

Strom=Ladung/Zeit;
printf ("Die Zeit beträgt %f Sek",Zeit);
}



If (Entscheid = 3);
{
printf ("Geben Sie bitte die Größe der Stromstärke in milliAmpere an!");
scanf ("%f",&Strom);
printf ("Geben Sie bitte die Zeit in Sekunden an!");
scanf ("%f",&Zeit);

Strom=Ladung/Zeit;
printf ("Die Stromstärke beträgt %f c",Strom);
}






getch();
return 0;
}
nicky777
 
Beiträge: 491
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon chris_davidi am 14.09.2005, 23:36

Hi nicky777,

unter C bzw. C++ meinst Du sicherlich den Datentyp Char. Diesen kannst Du dort so verwenden wie in anderen Sprachen den Datentyp String.

Du solltest Dich in das Thema Operatoren einlesen. Vorallem in die Vergleichsoperatoren. Bei den meisten Programmiersprachen vergleicht man mit einem doppelten = Zeichen, also ==.

Außerdem solltest Du Sprachelemente wie if auch klein schreiben und nicht If. Bei bestimmten Compilern wirst Du sonst Probleme bekommen.

Grüße,
chris_davidi[/code]
chris_davidi
 
Beiträge: 1253
Registriert: 26.12.2003, 15:40

Beitragvon blod am 15.09.2005, 12:36

Char ist ein einzelnes Zeichen, darum muss man einen längeren Bereich reservieren.

In C++ nimmt man keinen char Pointer (char*), oder ein char Feld (char[]), sondern std::string. Zumindest seit es die STL gibt.

Ein Beispiel in C:

char* pTest = "sdfsfds";

char cTest[255];

sprintf(ctest, "%s", pTest);
blod
 
Beiträge: 203
Registriert: 10.09.2005, 00:47

Beitragvon nicky777 am 15.09.2005, 16:54

Super! Jetzt bin ich schon weiter gekommen... hier ist mein neuer Code... doch es geht immer noch nicht :-(




Code: Alles auswählen
#include <stdio.h>
#include <conio.h>

main()



{
     
float Ladung,Zeit,Strom,Entscheid;

     
     
printf ("Guten Tag, dieses Programm dient dazu mit Hilfe der J = Q/T \nFormel die Stromstärke,\ndie Ladung oder die Zeit zu berechnen. Bitte drücken Sie 1,\nwenn Sie die Stromstärke berechnen wollen,\n2 wenn sie die Ladung berechnen wollen oder 3 wenn sie die Zeit berechnen wollen!");
scanf ("%f",&Entscheid);



If (Entscheid == 1);
{
printf ("Geben Sie bitte die GrӇe der Ladung in Coulomb an!");
scanf ("%f",&Ladung);
printf ("Geben Sie bitte die Gr”áe der Stromstärke in milliAmpere an!");
scanf ("%f",&Strom);

Zeit=Strom*Ladung;
printf ("Die Ladung beträgt %f c",Ladung);
}

If (Entscheid == 2);
{
printf ("Geben Sie bitte die GrӇe der Ladung in Coulomb an!");
scanf ("%f",&Ladung);
printf ("Geben Sie bitte die Zeit in Sekunden an!");
scanf ("%f",&Zeit);

Strom=Ladung/Zeit;
printf ("Die Zeit beträgt %f Sek",Zeit);
}



If (Entscheid == 3);
{
printf ("Geben Sie bitte die Gr”áe der Stromstärke in milliAmpere an!");
scanf ("%f",&Strom);
printf ("Geben Sie bitte die Zeit in Sekunden an!");
scanf ("%f",&Zeit);

Strom=Ladung/Zeit;
printf ("Die Stromstärke beträgt %f c",Strom);
}






getch();
return 0;
}
nicky777
 
Beiträge: 491
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon nicky777 am 15.09.2005, 16:58

Ich Trottel! Es lag am If
Jetzt geht alles!
Danke
David
nicky777
 
Beiträge: 491
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon chris_davidi am 15.09.2005, 17:42

bld hat geschrieben:Char ist ein einzelnes Zeichen, darum muss man einen längeren Bereich reservieren.

In C++ nimmt man keinen char Pointer (char*), oder ein char Feld (char[]), sondern std::string. Zumindest seit es die STL gibt.

Ein Beispiel in C:

char* pTest = "sdfsfds";

char cTest[255];

sprintf(ctest, "%s", pTest);


Ja, das meinte ich auch, ich war nur nicht so ausführlich.

Kannst Du noch für die anderen User ein Beispiel in C++ posten?
chris_davidi
 
Beiträge: 1253
Registriert: 26.12.2003, 15:40

Beitragvon nicky777 am 15.09.2005, 18:27

Ähh ich kann kein C++ und weiß auch überhaupt nichts darüber. Wollte bevor ich das lerne erst C lernen.... bringts mir eig viel wenn ich C vorher lerne?
Und noch ne Frage: Wie geht der CLS Befehl bei C?
David
nicky777
 
Beiträge: 491
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon nicky777 am 15.09.2005, 18:28

Achso... war garnicht gemeint :-)
nicky777
 
Beiträge: 491
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon nicky777 am 15.09.2005, 18:36

Ein Beispiel in C:

char* pTest = "sdfsfds";

char cTest[255];

sprintf(ctest, "%s", pTest);



Hö... warum geht das im folgenden Code nicht?










[code]#include <stdio.h>
#include <conio.h>

main()



{

float Ladung,Zeit,Strom;
char*ptest Entscheid;

printf ("Guten Tag, dieses Programm dient dazu mit Hilfe der J = Q/T \nFormel die Stromstärke,\ndie Ladung oder die Zeit zu berechnen. Bitte dr
nicky777
 
Beiträge: 491
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon chris_davidi am 15.09.2005, 18:50

Hallo,

schaue Dir mal die Zeile mit

char*ptest Entscheid;

genauer an. Habe nur mal kurz überflogen. ;)


Zu Deinem CLS.

clear();

oder

system("clear");

Man darf system() nur dann verwenden, wenn man sicher ist, daß der Parameter für den system() Aufruf keinen schädlichen Code enthält. Das ist insofern von interesse, da auf einem UNIX System system() eine Shell startet und diese Zeichen im Parameter von system() interpretiert. Daher niemals Code übergeben, der von einem nicht vertrauenswürdigen Person stammt.

Ansonsten gäbe es noch cleardevice, ist aber etwas schwieriger.

Grüße,
chris_davidi
chris_davidi
 
Beiträge: 1253
Registriert: 26.12.2003, 15:40

Beitragvon nicky777 am 15.09.2005, 18:57

Man darf system() nur dann verwenden, wenn man sicher ist, daß der Parameter für den system() Aufruf keinen schädlichen Code enthält. Das ist insofern von interesse, da auf einem UNIX System system() eine Shell startet und diese Zeichen im Parameter von system() interpretiert. Daher niemals Code übergeben, der von einem nicht vertrauenswürdigen Person stammt.

Ansonsten gäbe es noch cleardevice, ist aber etwas schwieriger.




aaaaahchso.... :-)... naja das obere habe ich ja begriffen... ich probiers einfach mal.
Danke!


Gruß
David777
nicky777
 
Beiträge: 491
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon blod am 15.09.2005, 19:00

Hier ein C++ Beispiel:

Code: Alles auswählen
//Wichtig ohne .h, das hier ist eine standard Funktion aus der STL die bei ISO-C++ dabei ist
#include <iostream>

int main(int args, char* argv[])
{
   std::string strTest = "Ich bin ein Blubbfish!";

   std::cout << "Der String strTest hat folgenden Inhalt: " << strTest << std::endl;

          IrgendeineAlteCFunktionDieEin_char_pointer_erwartet(strTest.c_str());


   return 0;
}


blod
 
Beiträge: 203
Registriert: 10.09.2005, 00:47

Beitragvon nicky777 am 15.09.2005, 19:01

Gut... das eine hat geklappt... doch das mit dem clear(); geht noch nicht so ganz :-(
Es gab da aber auch noch was anderes... irgendwie clsrscr(); oder so, was man da schreiben musste, damit der nen CLS macht .... ne Ahnung?
nicky777
 
Beiträge: 491
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon nicky777 am 15.09.2005, 19:10

ahhh der Befehl war clrscr();

das geht jetzt auch... doch an dieser Stelle vom Programm hier meckert der noch und warnt mich vor irgendwad:
Code: Alles auswählen
If (Entscheid == "Q" );
nicky777
 
Beiträge: 491
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Nächste


Ähnliche Themen


Zurück zu Software-Hilfe

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste