This topic has been deleted. Only users with topic management privileges can see it. Hallo! Ich bin neu hier und mache gerade meine ersten Programmierübungen in C. Mit der Funktion scanf() möchte ich einen String einlesen und diesen anschließend wieder ausgeben. Das funktioniert soweit auch, aber wenn ich zum Schluss ENTER drücke um das Konsolenfenster zu schließen bekomme ich den Fehler Run-Time Check Failure #2 - Stack around the variable 'text' was corrupted. Ich verwende Microsoft Visual Studio 2010. Weis jemand, wo hier der Fehler liegt? C - Lesen Sie einen string als Eingabe mit scanf. Hier der Code: #include
#include "stdafx. h" void main(void) { char text; printf("Bitte geben Sie eine Zeichenkette ein! "); scanf("%s", &text); printf("Eingegeben:%s", &text); fflush(stdin); //Tastaturpuffer löschen getchar();} Schau noch mal wie ein String in C aussehen muss <= Einzeichen-Text ist sicher nicht was du möchtest <= bei Strings da kein & MfG f. -th. text ist als char definiert. Als ein char. So ein String besteht aber aus mehr Zeichen.
edit: eine frage. hat c++ da eine bessere lösung zu. also strings dynamisch in der länge einlesen? The post was edited 1 time, last by Qualmi ( Sep 21st 2009, 1:13pm). 9 hallo, soweit ich weiß verwendet man unter c++ dafür die klasse string mit der man string objekte erzeugen kann die strings in dynamischer länge halten können. siehst du hier: Link thx, truespin » C, C++ & Objective-C »
Ich terminiere den String einfach nur, warum ich das genau gemacht habe, weiss ich auch nicht mehr. Zudem müsste es eigentlich nach der folgenden if-Abfrage kommen. Aber irgendeinen Grund hatte es. Gut, dass es ein if ist, hast du ja schonmal verstanden. String einlesen c.h. Also machen wir auch mal eines draus: if (inputLength) { return inputArray;} else { return NULL;} if (show_input) { putchar(input);} else { putchar('*');} Beide Code-Abschnitte machen genau das gleiche, spart nur ein paar Zeilen und ist für jemanden, der mit dem Ternären Operator vertraut ist schneller zu lesen. Für sowas braucht man sich doch nicht entschuldigen, du hast was nicht verstanden und nachgefragt Ich hoffe ich konnte helfen. /Edith hat die Antwort auf deine Frage wegen dem allokieren oder allozieren gefunden: (Informatik)#Sprachliches Allokation = Substantiv allozieren = Verb Zuletzt bearbeitet: Nov 13, 2011 #5 Hallo Lookshe! Danke ich glaube ich habe es nun verstanden... ich werde nun zur nächsten Phase schreiten und das ganze versuchen nach zu Basteln damits auch wirklich sitzt.
Darum brauchst du ein Array. Super, Danke! Ich habe das nun wie unten im Code ausgebessert Wie lese ich aber am besten einen String ein, wenn ich nicht weis, wieviele Zeichen der Benutzer eingibt? Arbeiten mit Zeichenketten: Ein- und Ausgabe von Zeichenketten. char text[5]; printf("Bitte geben Sie 4 Zeichen ein! "); scanf("%s", text); Du kannst mit dem Array auch großzügiger sein char text[1001]; scanf("%1000s", text); // liest maximal 1000 Zeichen bis zum ersten Whitespace ein oder besser, da du auch Leerzeichen einlesen kannst: scanf("%1000[^\n]", text); // liest maximal 1000 Zeichen ein bzw. : fgets (text, 1001, stdin); Wenn du beliebig viele Zeichen einlesen willst, musst du die einzeln (mit getchar()) einlesen und im (dann dynamischen besorgten) Speicher ablegen. DirkB schrieb: Wenn Du aber ein C-Programm schreibst, das (am besten noch in der Console) 1000 Zeichen Eingabe ohne return-Taste übersteigt, solltest Du das Konzept überarbeiten oder dir geistig gesunde Anwender suchen Und 1 kb Speicher ist in der heutigen Zeit wohl eher nicht mehr das Problem.
Sie können nun auch per Voreinstellung auswählen, ob jede neue E-Mail standardmäßig signiert und/oder verschlüsselt werden soll. Für die Signierung muss ein Haken bei "Nachrichten digital unterschreiben (als Standard)" gesetzt werden, für die Verschlüsselung bei "Notwendig (Senden nur möglich, wenn alle Empfangenden ein Zertifikat besitzen)". Wir empfehlen Ihnen, die Signierung automatisch voreinzustellen und die Verschlüsselung per Voreinstellung abzuschalten. Email:digitalesignatur [Wiki Rechenzentrum Hochschule Schmalkalden]. Denn das Versenden einer verschlüsselten E-Mail ist nur möglich, wenn Sie das öffentliche Zertifikat der empfangenden Person besitzen (was bei all Ihren Kontakten unwahrscheinlich ist). Möchten Sie eine E-Mail verschlüsselt versenden, können Sie dies auch beim Verfassen einer E-Mail direkt einstellen (dies gilt ebenfalls für die Signierung der E-Mail)
Komm hereinstudiert und beginne die beste Zeit in deinem Leben. Mehr dazu Mit einem engen Netz von etwa 150 Hochschulkooperationen. Mehr dazu über 115 Jahre Tradition, alle Studiengänge sind akkreditiert Mehr dazu Praxisnahes Studium mit moderner Ausstattung und hohem Komfort Mehr dazu Engagierte Professoren & Lehrende und kleine Studiengruppen ohne Platzmangel Mehr dazu Alle Studiengänge sind akkreditiert, Spitzenplätze in Hochschulrankings. Webmail fh schmalkalden university. Mehr dazu Nicht verpassen - der nächste HIT 2022 11. Juni 2022 ab 13:00 Uhr ist der nächste HIT - der Hochschulinformationstag! Der Startplatz für Deine Zukunft Auf jeden Fall der perfekte Ort für Dein Studium! Komm hereinstudiert und beginne die beste Zeit deines Lebens. Internationale Ausrichtung, exzellente Lehre, breites Fächerspektrum, moderne Ausstattung, garantierter Wohnraum und eine attraktive Hochschulstadt sowie innovative Studiengänge – praxisnah und international –, ein Campus mit kurzen Wegen, moderne Ausstattung und eine persönliche Atmosphäre zwischen Dozenten und Studierenden.
Abteilung Empfänger * Vorname * Familienname * Straße PLZ Ort Telefon Fax E-Mail * Betreff * Kommentar *