Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Problem mit variablen-typ: char

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
21.03.2006, 18:20 Uhr
~Rockmaster77
Gast


Hi Leute!
der variablentyp char ist ja der einzige der auch buchstaben und alle möglichen zeichen speichern kann.
Das Problem ist das er bei mir nicht funktioniert!
ich hab dazu ein ganz einfaches programm erstellt um das näher zu zeigen:


C++:
#include <iostream.h>

int main() {

char testvariable = "test";
cout << testvariable;

return 0;
}



Wenn ich das ann compilen will erscheint folgende fehlermeldung:

Code:

C2440: 'initializing' : 'char [5]' kann nicht in 'char' konvertiert werden
Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat



Ich verwende das Programm: Microsoft Developer Studio 97

kann mir jemand helfen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.03.2006, 19:07 Uhr
Pler
Einer von Vielen
(Operator)



Zitat:

der variablentyp char ist ja der einzige der auch buchstaben und alle möglichen zeichen speichern kann.


Das ist nicht richtig.
Man kann genausogut int verwenden. Kommt eben nur drauf an, wie es angesprochen wird.


Zitat:

char testvariable = "test";



Das kann nicht funktionieren.
"test" ist eine Zeichenkette. testvariable hat nur Plart für ein Zeichen.
const char* = "test" klappt dagegen, da nur der Zeiger auf die Zeichenkette in der Variable gehalten wird.
Anders:
char[10] = "test";
Hier legst du ein Feld an in dem genügend Plart für die Zeichen ist.

Ausserdem mischt du C und C++. Um in C++ mit Zeichenketten umzugehen schau dir lieber mal string an.


Zitat:

C2440: 'initializing' : 'char [5]' kann nicht in 'char'


Das ist genau das oben beschriebene Problem. Du weist einen Zeiger einer normalen char-Varieblen zu. Das kann nicht funktionieren. Die Typen müssen schon stimmen.


Zitat:

Ich verwende das Programm: Microsoft Developer Studio 97


Das ist hier völlig unerheblich, da alles Standard C bzw. C++ ist.


Ich würde mal sagen wir warten bis ca. 1 Uhr und dann kannst du dir von Hans ein paar Bücher empfehlen lassen.
(Das ist nicht böse gemeint, aber an deinem Beispiel stimmt nun mal so gut wie gar nichts.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.03.2006, 19:43 Uhr
ao

(Operator)



Zitat von ~Rockmaster77:
Ich verwende das Programm: Microsoft Developer Studio 97

Steinzeit-Software, nicht standard-konform, da zu alt. Damit wirst du nicht viel Vergnügen haben. Kannst du nichts Jüngeres benutzen?

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.03.2006, 21:07 Uhr
~Rockmaster77
Gast


jo ich wollte ja auch ein update drauf machen, aber ich finde nirgends eins das sich auch mal downloaden lässt
@pler:
Ich nimms dir nicht übel...
ich weis das ich erst ein purer anfänger in C++ bin un 0 ahnung davon hab hehe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
21.03.2006, 21:10 Uhr
~somedude
Gast


download dir microsoft visual c++ express (kostenlos)
weitere infos -> google
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.03.2006, 00:52 Uhr
Hans
Library Walker
(Operator)



Zitat von Pler:
Ich würde mal sagen wir warten bis ca. 1 Uhr und dann kannst du dir von Hans ein paar Bücher empfehlen lassen.
(Das ist nicht böse gemeint, aber an deinem Beispiel stimmt nun mal so gut wie gar nichts.

Das muss ich jetzt nicht Kommentieren, oder?

Ansonsten aber gut geschätzt, bzw. beobachtet. (Nur für's Protokoll: Als ich Deinen Artikel gelesen hab, war es 0:44 Uhr, aber es dauert ja auch einige Zeit, einen Beitrag zu schreiben... )
Was die Empfehlungen angeht, - da soll er mit der Suchfunktion mal die Artikel von mir durchstöbern, da wird er garantiert fündig werden.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.03.2006, 20:29 Uhr
Rockmaster



INT kann keine anderen werte als zahlen annehmen!
ich habs grad ausprobiert!
Es lässt sich zwar compilen aber wenn ich dann durch den "cin >>"-befehl buchstaben in eine int-variable speichern will beendet er das programm sofort.
Geb ich stattdessen eine zahl ein, fährt as programm fort wie es soll.

Und das mit char[10] oder wie auch immer hab ich gar nicht verstanden und er speiht mir immer noch ne reihe von fehlern aus...


C++:
#include <iostream>
using namespace std;

int main() {
int ant;
const char* frage;
cin >> frage;
cout << frage;
cin >> ant;
return 0;
}


Der fehler dazu:

Code:
C:\Programme\Microsoft Visual Studio 8\VC\include\istream(441): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_streambuf<_Elem,_Traits> *)"
        with
        [
            _Elem=char,
            _Traits=std::char_traits<char>
        ]
        bei Anpassung der Argumentliste '(std::istream, const char *)'



kann mir einer vllt mal ein kleines beispiel posten wie das programm (oben beschreiben) richtig funktionieren würde?

Danke im vorraus!

Dieser Post wurde am 22.03.2006 um 20:37 Uhr von Rockmaster editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.03.2006, 20:41 Uhr
xXx
Devil


hmm warum const ?!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
23.03.2006, 09:07 Uhr
Pler
Einer von Vielen
(Operator)



Zitat von xXx:

hmm warum const ?!


Weil ich das oben geschrieben hatte!

@Rockmaster
Allerdings hast du das etwas verdreht. Ich hatte den const char* direkt einer Zeichen kette zugewiesen.
Du legst ihn aber erst an, und lässt ihn dann auf auf ne Kette zeigen. Das geht allerdings nicht, da der konstante Zeiger dann verändert wird.
(Stimmt ja gar nicht, siehe unten)


Zitat von Rockmaster:

const char* frage;
cin >> frage;


Hab doch schon geschrieben, dass man in C++ string nehmen soll, und nicht mit C-Strings arbeiten soll. Ich kenne mich jetzt mit dem Zeug auch nicht so aus, würde aber mal stark bezweifeln, dass cin dir den Speicher für das Eingelesene automatisch holt.


Zitat von Rockmaster:

Es lässt sich zwar compilen aber wenn ich dann durch den "cin >>"-befehl buchstaben in eine int-variable speichern will beendet er das programm sofort.


Jetzt versuchst du den ganzen C-String in eine int-Variable zu speichern.
Das geht genausowenig wie in eine einzige char-Variable.
Entweder legst du ein Feld von int-Variablen an, oder machst das ganze über ein int*

Dieser Post wurde am 23.03.2006 um 09:09 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.03.2006, 14:41 Uhr
Rockmaster



sry aber ich verstehe GAR NICHTS vin strings oder zeigern!
Ich will einfach nur das ich einen text eingebe, in eine varialbe speichern und dann ausgeben kann...
P.S. von strings versteh ich in keiner programmiersprache etwas und da das so kompliziert is will ichs auch gar nich erst versuchen zu lernen!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: