Programmieren – die besten Beiträge

Was ist der Tastaturpuffer?

Hallo,

Ich lerne gerade C für mein Studium und wir arbeiten mit scanf. Unser Prof hat das Thema Tastaturpuffer aber leider nicht richtig erklärt und ich stehe dementsprechend auf dem Schlauch.

Hier ist die ganze Sache ja noch sehr verständlich.

Eine Zahl wird eingelesen. Diese Eingabe wird mit \n bestätigt. Das in der letzten Zeile eingegeben \n befindet sich in diesem Tastaturpuffer und  wird jetzt automatisch im zweiten scanf eingegeben. Damit wird dieses scanf "Übersprungen" und der Variable "Dummy" das \n  zugewiesen.

EIne Zahl und ein Zeichen wird eingelesen. Wenn jetzt sowohl das Zeichen als auch das \n in dem Tastaturpuffer gespeichert ist, dann müsste ich eine 7 ein A und einen Zeilenumbruch aus Ausgabe bekommen. Das Passiert aber nicht.

Wenn nur das A in dem Tastaturpuffer gespeichert ist, dann müsste ich eine 7 ein A und die möglichkeit erhalten, ein neues Zeichen einzugeben. Das Passiert aber auch nicht.

Stattdessen erhalt ich einfach nur eine 7 und ein A und der Code wird beendet. Warum?

Hier die beiden Codes:

#include <stdio.h>

int main(){

    int Zahl;

    char Dummy;

    printf("geben Sie bitte eine ganze Zahl ein:");

    scanf("%d", &Zahl);                                         .

    scanf("%c", &Dummy);                                        

    printf("%c", Dummy);                                        

    return 0;

}

Und

#include <stdio.h>

int main(){

    int Zahl;

    char Dummy2;

    char Dummy;

    printf("\ngeben Sie bitte eine ganze Zahl und ein Zeichen ein:");

    scanf("%d", &Zahl);                                                 

    printf("%d", Zahl);

    scanf("%c", &Dummy);                                               

    printf("%c", Dummy);                                             

    scanf("%c", &Dummy2);                                                

    printf("%c", Dummy2);

    return 0;

}

Bild zum Beitrag
Computer, Schule, programmieren, C (Programmiersprache)

Unity GameObject deaktivieren?

Ich habe ein Einstellungsmenü. Wenn ich in dieses Menü komme, möchte ich das, dass Panel sound sichtbar wird und das Panel keybinds unsichtbar. Das Problem ist allerdings, dass es nicht funktioniert. Es funktioniert nur wenn ich zB. auf den Button Sound oder Keybinds drücke, dann wird das eine sichtbar und das andere unsichtbar. (Wenn ich auf den Button Sound klicke, dann wird show_hide_sound() ausgeführt).

Allerdings werden mir so, am Anfang beide Panels angezeigt, obwohl ich bei der start() funktion das eine "deaktiviere".

Was könnte da der Fehler sein?

public GameObject sound;
public GameObject keybinds;

public int sound_zahl = 1;
public int keybind_zahl = 0;

void start()
   {
       keybinds.SetActive(false);
       sound.SetActive(true);
   }
public void show_hide_sound()
   {
       keybind_zahl = 0;
       if (sound_zahl == 0)
       {
           sound.SetActive(true);
           keybinds.SetActive(false);
           sound_zahl++;
       }
   }

public void show_hide_keybinds()
   {
           sound_zahl = 0;
           if (keybind_zahl == 0)
           {
               keybinds.SetActive(true);
               sound.SetActive(false);
               keybind_zahl++;
           }
       }
Computer, programmieren, Unity

Java: Wie kann ich die Werte für die Matrix einlesen, nachdem ich die Spalte und Zeile eingelesen habe?

Ich stecke bei einer Aufgabe leider etwas fest.

Schreiben Sie ein Programm  Matrix, welches ein zweidimensionales Array übergeben bekommt und die Summe aller Werte in diesem Array berechnet.
Das erste, von der Konsole übergebene Argument, ist die Anzahl der Zeilen. Das zweite die Anzahl der Spalten des Arrays. Die restlichen Argumente sind Werte, mit denen das Array gefüllt werden soll. Gehen Sie davon aus, dass nur ganze Zahlen (positiv und negativ) übergeben werden.
Ihr Programm soll erst die Summe und anschließend die gesamte Matrix zeilenweise ausgeben. Falls zu wenige, oder zu viele Argumente von der Konsole übergeben werden oder die übergebenen Größenwerte negativ sind, soll Ihr Programm eine Fehlermeldung ausgeben, welche das Wort  ERROR enthält.
Eine Matrix der Größe 0 x 0
0×0 zählt als valide Matrix und hat die Summe $0$.

Ich habe bereits einen Ansatz zum Einlesen der Matrix. Dieser funktioniert aber nicht so ganz und ist noch unvollständig, da ich bei einigen Sachen nicht weiter komme.

Zum Beispiel, wie ich die Werte einlesen soll, nachdem ich die Spalte und Zeile eingelesen habe.

public class Matrix {
  public static void main(String[] args) {
    int zeile = Integer.parseInt(args[0]);
    int spalte = Integer.parseInt(args[1]);
    int Werte = Integer.parseInt(args[2]);
    int sum = 0;

    int[][] matrix = new int[zeile][spalte];

    for (int i = 0; i < zeile; i++) {
      for (int j = 0; j < spalte; j++) {
        matrix[i][j] = ???
        sum = matrix[i][j] + matrix[i][j];
      }

      System.out.println(sum);
      System.out.println(matrix[i][j]);
    }            
Schule, programmieren, Java, Array, Matrix

Meistgelesene Beiträge zum Thema Programmieren