C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Zählen von Nullen und Einsen in Datei

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Lars Horeis
Guest





PostPosted: Sun Apr 18, 2004 4:24 pm    Post subject: Zählen von Nullen und Einsen in Datei Reply with quote



Hallo,

ich hoffe, dass mir jemand bei der Lösung des folgenden (augenscheinlich
simplen) Problems helfen kann.

Ich habe eine Textdatei, welche aus einer grossen Anzahl von Zeilen
besteht, die sich ausschließlich aus Nullen und Einsen zusammensetzen.

Ich möchte jetzt unter anderem zählen, wie viele Nullen und Einsen diese
Datei enthält.

Den Namen der zu öffnenden Datei übergebe ich dem Programm an der
Kommandozeile und öffne sie wie folgt

std::ifstream InputFile(argv[1]);

Dann habe ich mir gedacht, dass ich vereinfacht ausgedrückt sowas wie

char s;

[..]

while(InputFile.get(s))
{
switch(s){
case '1' : AnzahlEinsen++;
case '0' : AnzahlNullen++;
}
}

habe. Das zählen der Einsen klappt auch wie erwartet nur die Nullen
machen Stress, was wohl daran liegt, dass der Typ für '0' nicht passend
ist, allerdings blicke ich nicht, wie ich das beheben kann.

Gruss und Danke,

Lars

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Rolf Magnus
Guest





PostPosted: Sun Apr 18, 2004 11:30 pm    Post subject: Re: Zählen von Nullen und Einsen in Datei Reply with quote



Lars Horeis wrote:

Quote:
Hallo,

ich hoffe, dass mir jemand bei der Lösung des folgenden
(augenscheinlich simplen) Problems helfen kann.

Ich habe eine Textdatei, welche aus einer grossen Anzahl von Zeilen
besteht, die sich ausschließlich aus Nullen und Einsen zusammensetzen.

Ich möchte jetzt unter anderem zählen, wie viele Nullen und Einsen
diese Datei enthält.

Den Namen der zu öffnenden Datei übergebe ich dem Programm an der
Kommandozeile und öffne sie wie folgt

std::ifstream InputFile(argv[1]);

Dann habe ich mir gedacht, dass ich vereinfacht ausgedrückt sowas wie

char s;

[..]

while(InputFile.get(s))
{
switch(s){
case '1' : AnzahlEinsen++;
case '0' : AnzahlNullen++;
}
}

habe. Das zählen der Einsen klappt auch wie erwartet nur die Nullen
machen Stress,

"machen Stress" ist nicht gerade eine sinnvolle Beschreibung des
Problems. Was genau passiert denn statt dem Erwarteten?

Quote:
was wohl daran liegt, dass der Typ für '0' nicht passend ist,

Wie kommst du darauf? '0' ist vom selben Typ wie '1', nämlich char.

Quote:
allerdings blicke ich nicht, wie ich das beheben kann.

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Ludwig Pumberger
Guest





PostPosted: Mon Apr 19, 2004 5:54 am    Post subject: Re: Zählen von Nullen und Einsen in Datei Reply with quote



Lars Horeis schrieb:

Quote:
char s;

[..]

while(InputFile.get(s))
{
switch(s){
case '1' : AnzahlEinsen++;

Da fehlt ein break;

Quote:
case '0' : AnzahlNullen++;

Da würd ich defensiverweise auch eins herschreiben.

Quote:
}
}

habe. Das zählen der Einsen klappt auch wie erwartet nur die Nullen
machen Stress, [...]

Die AnzahlNullen ist bei dir wohl die Anzahl aller Zeichen.

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Lars Horeis
Guest





PostPosted: Mon Apr 19, 2004 6:51 am    Post subject: Re: Zählen von Nullen und Einsen in Datei Reply with quote

On Mon, 19 Apr 2004 07:54:31 +0200
Ludwig Pumberger <elpeka (AT) gmx (DOT) at> wrote:

Hallo Ludwig!


Quote:
while(InputFile.get(s))
{
switch(s){
case '1' : AnzahlEinsen++;

Da fehlt ein break;

case '0' : AnzahlNullen++;

Da würd ich defensiverweise auch eins herschreiben.

}
}


Das mit dem 'defensiverweise' ist natürlich goldrichtig. Keine Ahnung,
wie ich darauf gekommen bin, das 'break' wegzulassen. :(

Quote:
habe. Das zählen der Einsen klappt auch wie erwartet nur die Nullen
machen Stress, [...]

Die AnzahlNullen ist bei dir wohl die Anzahl aller Zeichen.

Stimmt, ohne das break ist steht in AnzahlNullen die Gesamtanzahl aller
Zeichen.

Danke und Sorry!

Lars

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Werner Salomon
Guest





PostPosted: Mon Apr 19, 2004 8:06 am    Post subject: Re: Zählen von Nullen und Einsen in Datei Reply with quote

Lars Horeis <nospam (AT) horeis (DOT) de> wrote

Quote:
Ich habe eine Textdatei, welche aus einer grossen Anzahl von Zeilen
besteht, die sich ausschließlich aus Nullen und Einsen zusammensetzen.

Ich möchte jetzt unter anderem zählen, wie viele Nullen und Einsen diese
Datei enthält.
[...]
char s;
[..]

while(InputFile.get(s))
{
switch(s){
case '1' : AnzahlEinsen++;
case '0' : AnzahlNullen++;
}
}

Das zählen der Einsen klappt auch wie erwartet nur die Nullen
machen Stress, ...

Hallo Lars,
wenn Du unter "Stress machen" verstehst, dass die Anzahl der Nullen,
die Dein Programm zählt, gleich der Anzahl der Nullen PLUS der Einsen
ist, so liegt das daran, dass Du ein 'break' im switch vergessen hast.
Also:
switch(s){
case '1' : AnzahlEinsen++; break;
case '0' : AnzahlNullen++; break;
}

Gruß
Werner

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Hans Mueller
Guest





PostPosted: Mon Apr 19, 2004 9:13 am    Post subject: Re: Zählen von Nullen und Einsen in Datei Reply with quote

Rolf Magnus wrote:
Quote:
Lars Horeis wrote:

Ich möchte jetzt unter anderem zählen, wie viele Nullen und Einsen
diese Datei enthält.

while(InputFile.get(s))
{
switch(s){
case '1' : AnzahlEinsen++;

break;

Quote:
case '0' : AnzahlNullen++;
}
}



OP: Lies doch nochmal nach wie switch/case funktioniert und warum
(bzw. manchmal auch wann...) Du 'break' brauchst.

So hat Dein Code für die Variable Anzahl-Nullen gezählt, wieviel Zeichen
die Datei insgesamt hat.

Gruss, Hanss-Achim

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Thomas Dorner
Guest





PostPosted: Mon Apr 19, 2004 3:39 pm    Post subject: Re: Zählen von Nullen und Einsen in Datei Reply with quote

Hallo Lars!

LH> case '1' : AnzahlEinsen++;
LH> case '0' : AnzahlNullen++;

Tatsächlich ohne "break;"? Dann wundert mich nicht, daß die Nullen
Probleme machen, Dein case läuft rüber.

Viele Grüße, Thomas
--
From-Adresse wird nicht genutzt, Reply-To Adresse gilt nur 4 Wochen!

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Lars Horeis
Guest





PostPosted: Mon Apr 19, 2004 9:24 pm    Post subject: Re: Zählen von Nullen und Einsen in Datei Reply with quote

On 19 Apr 2004 17:39:41 +0200
Thomas Dorner <nospam.de.comp.lang.iso-c++.040419 (AT) dorner (DOT) claranet.de>
wrote:

Hallo Thomas!

Quote:
LH> case '1' : AnzahlEinsen++;
LH> case '0' : AnzahlNullen++;

Tatsächlich ohne "break;"? Dann wundert mich nicht, daß die Nullen
Probleme machen, Dein case läuft rüber.

Ich weiss. Habe echt keine Ahnung, was mich da geritten hat. Liegt wohl
daran, dass ich alles vergessen habe, was ich jemals gelernt habe.

Danke an Dich und an alle anderen Poster und natürlich auch an die Mods,
die mein Posting gnädigerweise durchgelassen haben.

Gruss,

Lars

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.