Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

06.11.2009, 19:55

[gelöst] Fragen zu gets()

Hallo,

ich hätte da mal gern zwei Newbiefragen:

FRAGE 1:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <string.h>

int main (void)
{
    char satz[100];

    printf("Satz eingeben: );
    gets(satz); 


    printf("\n\nDer Satz lautet: %s und hat %i Zeichen", satz, strlen(satz));

Ich bekomme immer einen Fehler in der Zeile gets(satz);. Bin aber eigendlich der Meinung, dass es so richtig ist. Ihr auch ;)

Danke
Dani

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

06.11.2009, 20:00

Re: Fragen zu gets()

Zitat von »"dani k."«

Hallo,

ich hätte da mal gern zwei Newbiefragen:


"Warum schliesst sich die Konsole immer gleich wieder, wenn ich das Programm starte?"
und
"Was soll ich lernen? C oder C++?"

Bitteschön.

Zu deinem Problem:
Sag doch gleich, was du für einen Fehler bekommst. Kompilierungsfehler, macht es nicht das, was du willst, oder was? - Hilfreich wäre es auch den kompetten Code zu posten und nicht die hälfte zu verschlucken.

Vielleicht hilft dir auch das hier:
http://www.cplusplus.com/reference/clibrary/cstdio/gets/

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

3

06.11.2009, 20:01

Re: Fragen zu gets()

Zitat von »"dani k."«

ich hätte da mal gern zwei Newbiefragen:


gar nicht so einfach...

wie kann man eine instanz einer klasse in erstellen?

wie kann ich mir zwei werte von einer funktion zurückgeben lassen?

edit: drakons fragen sind "newbieger"^^ also sind sie wahrscheinlich auch besser :D

4

07.11.2009, 09:14

Hallo ihr beiden,

ja ich versteh schon: Dumme Frage, dumme Antwort :) Und das auch noch am Freitag Abend.

Ich bekomme folgenden Fehler:
9 syntax error; found `;' expecting ')'

Das ist im übrigen der ganze Code (außer letzte }). Ich wollte nur mal die gets-Funktion testen.

Grüße
Dani

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

07.11.2009, 09:18

C-/C++-Quelltext

1
   printf("Satz eingeben: );  // <-- a fehlt ein " 

6

07.11.2009, 10:17

Oh mann, manchmal sind es die kleinen Dinge... Danke.

Jetzt hab ich noch eine Frage:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <stdio.h>
#include <stdlib.h>

int main (void)
{
    int matrix [2] [2];
    int vektor [1] [1];

    printf("\n\nMatrix (2x2) erste Zeile, erster Wert: ");
    scanf("%i", &matrix[0][0]);

    printf("\nMatrix (2x2) erste Zeile, zweiter Wert: ");
    scanf("%i", &matrix[1][0]);

    printf("\nMatrix (2x2) zweite Zeile, erster Wert: ");
    scanf("%i", &matrix[0][1]);

    printf("\nMatrix (2x2) zweite Zeile, zweiter Wert: ");
    scanf("%i", &matrix[1][1]);

    printf("\n\nMatrix:");
    printf("\n%i %i", matrix[0][0], matrix[1][0]);
    printf("\n%i %i", matrix[0][1], matrix[1][1]);

    printf("\n\nMatrix oben links: %i", matrix[0][0]);

    printf("\n\nVektor (1x1) erste Zeile: ");
    scanf("%i", &vektor[0][0]);

    printf("\nVektor (1x1) zweite Zeile: ");
    scanf("%i", &vektor[0][1]);

    printf("\n\nVektor: ");
    printf("\n%i", vektor[0][0]);
    printf("\n%i", vektor[0][1]);

    printf("\n\nMatrix mal Vektor");

    int ergeb [2][2];

    ergeb [0][0] = matrix [0][0] * vektor [0][0];
    ergeb [1][0] = matrix [1][0] * vektor [0][1];
    ergeb [0][1] = matrix [0][1] * vektor [0][0];
    ergeb [1][1] = matrix [1][1] * vektor [0][1];

    printf("\n\nErgebnissmatrix:");
    printf("\n%i %i", ergeb[0][0], ergeb[0][1]);
    printf("\n%i %i", ergeb[1][0], ergeb[1][1]);
    printf("\n");
}



(Link)


Ihr seht den Code und die Ausgabe in der Konsole:
1. Warum bricht mir das Programm ab?
2. Grundsätzlich: Wenn ich über scanf Zahlen in Felder einlese, werden diese dann als Zahl gespeichert oder als Zeichen. Also muss ich mit atoi nochmal umwandeln, wenn ich rechnen will?

Danke!

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

7

07.11.2009, 10:37

Zitat von »"dani k."«

1. Warum bricht mir das Programm ab?


Du schreibst über den Bereich des Vektors hinaus:

C-/C++-Quelltext

1
2
3
4
5
6
int vektor [1] [1]; // 1x1 matrix 


// ...


printf("\n%i", vektor[0][0]);
printf("\n%i", vektor[0][1]); 


Wieso definierst du den Vektor sowiso einfach als:

C-/C++-Quelltext

1
int vektor[2];


Übrigens ist deine Multiplikation falsch.

Zitat von »"dani k."«

2. Grundsätzlich: Wenn ich über scanf Zahlen in Felder einlese, werden diese dann als Zahl gespeichert oder als Zeichen. Also muss ich mit atoi nochmal umwandeln, wenn ich rechnen will?


Nein, du musst hier nichts mehr Umwandeln. Das übernimmt scanf für dich.

8

07.11.2009, 11:48

Hallo,

ja danke, ich hatte ein Zeilen/Spalten Problem. Jetzt stimmt auch die Rechnung.

Grüße
Daniele

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

9

07.11.2009, 11:53

Zitat von »"dani k."«

Hallo,

ja danke, ich hatte ein Zeilen/Spalten Problem. Jetzt stimmt auch die Rechnung.

Grüße
Daniele


Wenn du nichts grundlegend an der Berechnung geändert hast, dann eher nicht!

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

10

07.11.2009, 13:06

David meint eher, dass die Multiplikation von Matrizen anderst verläuft. Sie dazu:
http://de.wikipedia.org/wiki/Matrix_%28Mathematik%29#Matrizenmultiplikation

Werbeanzeige