<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Wörter von Textdatei einlesen und verändern mit Arrays]]></title><description><![CDATA[<p>HalliHallo</p>
<p>Ich muss in der Schule ein Programm (c++) schreiben, welches eine vorgegebene Datei einliest.</p>
<p>Bsp. mit dem Inhalt &quot;Das ist ein Satz&quot;</p>
<p>Das Programm ändert dann den Satz bzw. jeden einzelnen Buchstaben durch einen anderen (a-z, b-y usw.)</p>
<p>Wir haben das ganze schon mit einzelnen Buchstaben gemacht, nun aber mit Wörtern.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;time.h&gt;
#include &lt;windows.h&gt;
#include &quot;ls.h&quot;

using namespace std;

ifstream datUrsprung(&quot;H:\\Ursprung.txt&quot;, ios::in);
ofstream datZiel(&quot;H:\\Ziel.txt&quot;, ios::out);

int main()
{
LesenDatei();
return 0;
}

void LesenDatei()
{
	int iPos = 0; // Buchstabenposition
	char cZeichen;

	while (datUrsprung.good()) // Liest Zeile bis zum Ende (EOF)
	{
		datUrsprung.seekg(iPos); // Buchstabenposition im Text
	 	cZeichen = (char)datUrsprung.get();
		if (datUrsprung.good())
			SchreibenDatei(cZeichen);
		iPos ++; // Buchstabenposition um 1 erhöht
	}
}

char Ersetze(char cVon)
{
if(((int)cVon) &gt; 96 &amp;&amp; ((int)cVon &lt; 123)) //kleinbuchstaben?
{
return char(122 - ((int)cVon - 97));
}

if(((int)cVon) &gt; 64 &amp;&amp; ((int)cVon &lt; 91))//grossbuchstaben?
{
return char(90 - ((int)cVon - 65));
}

if(((int)cVon) &gt; 47 &amp;&amp; ((int)cVon &lt; 58)) //zahl?
{
return char(57 - ((int)cVon - 48));
}

else
{
return cVon;
}
}

void SchreibenDatei(char cZeichen) //Schreiben und Ausgabe
{
cout &lt;&lt; Ersetze(cZeichen);
datZiel &lt;&lt; Ersetze(cZeichen);
}
</code></pre>
<p>WICHTIG: Es muss mit Arrays sein (also kein string gebrauchen)</p>
<p>gruss</p>
<p>Eldeon</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/121926/wörter-von-textdatei-einlesen-und-verändern-mit-arrays</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 21:51:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/121926.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Sep 2005 15:51:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wörter von Textdatei einlesen und verändern mit Arrays on Wed, 28 Sep 2005 15:51:47 GMT]]></title><description><![CDATA[<p>HalliHallo</p>
<p>Ich muss in der Schule ein Programm (c++) schreiben, welches eine vorgegebene Datei einliest.</p>
<p>Bsp. mit dem Inhalt &quot;Das ist ein Satz&quot;</p>
<p>Das Programm ändert dann den Satz bzw. jeden einzelnen Buchstaben durch einen anderen (a-z, b-y usw.)</p>
<p>Wir haben das ganze schon mit einzelnen Buchstaben gemacht, nun aber mit Wörtern.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;time.h&gt;
#include &lt;windows.h&gt;
#include &quot;ls.h&quot;

using namespace std;

ifstream datUrsprung(&quot;H:\\Ursprung.txt&quot;, ios::in);
ofstream datZiel(&quot;H:\\Ziel.txt&quot;, ios::out);

int main()
{
LesenDatei();
return 0;
}

void LesenDatei()
{
	int iPos = 0; // Buchstabenposition
	char cZeichen;

	while (datUrsprung.good()) // Liest Zeile bis zum Ende (EOF)
	{
		datUrsprung.seekg(iPos); // Buchstabenposition im Text
	 	cZeichen = (char)datUrsprung.get();
		if (datUrsprung.good())
			SchreibenDatei(cZeichen);
		iPos ++; // Buchstabenposition um 1 erhöht
	}
}

char Ersetze(char cVon)
{
if(((int)cVon) &gt; 96 &amp;&amp; ((int)cVon &lt; 123)) //kleinbuchstaben?
{
return char(122 - ((int)cVon - 97));
}

if(((int)cVon) &gt; 64 &amp;&amp; ((int)cVon &lt; 91))//grossbuchstaben?
{
return char(90 - ((int)cVon - 65));
}

if(((int)cVon) &gt; 47 &amp;&amp; ((int)cVon &lt; 58)) //zahl?
{
return char(57 - ((int)cVon - 48));
}

else
{
return cVon;
}
}

void SchreibenDatei(char cZeichen) //Schreiben und Ausgabe
{
cout &lt;&lt; Ersetze(cZeichen);
datZiel &lt;&lt; Ersetze(cZeichen);
}
</code></pre>
<p>WICHTIG: Es muss mit Arrays sein (also kein string gebrauchen)</p>
<p>gruss</p>
<p>Eldeon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/882302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/882302</guid><dc:creator><![CDATA[eldeon]]></dc:creator><pubDate>Wed, 28 Sep 2005 15:51:47 GMT</pubDate></item><item><title><![CDATA[Reply to Wörter von Textdatei einlesen und verändern mit Arrays on Wed, 28 Sep 2005 17:19:50 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Habt ihr dieses Programm in der Schule geschrieben? Und sollt dieses nun so modifizieren, dass es Wortweise einließt? Wenn ja: Was hast du bisher versucht? Woran hängst du?</p>
<p>Außerdem:</p>
<ol>
<li>Warum windows.h?</li>
<li>Warum time.h?</li>
<li>Warum ls.h?</li>
<li>Warum verwendest du nicht std::isalpha() etc :)?</li>
</ol>
<p>Btw: Das Einlesen von Wörtern (unterschiedlicher Länge) ist - mit rohen char-Arrarys - kein Spaß...</p>
<p>Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/882372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/882372</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Wed, 28 Sep 2005 17:19:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wörter von Textdatei einlesen und verändern mit Arrays on Wed, 28 Sep 2005 17:52:43 GMT]]></title><description><![CDATA[<p>Hu</p>
<p>ja wir haben dieses Programm in der Schule geschrieben, btw. einen Teil davon.</p>
<p>Windows.h und time.h hab ich hingeschrieben, weil ich was versucht habe. Habs vergessen wieder zu löschen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Das &quot;ls.h&quot; ruft die verschiedenen Funktionen auf.</p>
<p>Der Lehrer will es in Arrays sehen, die Lösung haben wir schon mit strings gemacht, aber naja ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>Mein Problem is, dass ich nich weiss, wie das Programm merkt, wann es ein Wort ist und dieses dann einliest, bzw. wie du schon sagstest, wieviele Buchstaben das Wort hat.</p>
<p>Wenn das Programm es erstmal checkt, wann es ein Wort ist, dann hab ich n grossen Schritt gemacht (hoff ich mal), aber naja, hab bisher noch keine ordentliche Lösungsmöglichkeit gefunden.</p>
<p>was is denn std::isalpha() etc. ? Hatten wir noch nie, und werden wir warscheinlich auch nie haben...</p>
<p>Gruss Eldeon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/882400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/882400</guid><dc:creator><![CDATA[eldeon]]></dc:creator><pubDate>Wed, 28 Sep 2005 17:52:43 GMT</pubDate></item><item><title><![CDATA[Reply to Wörter von Textdatei einlesen und verändern mit Arrays on Wed, 28 Sep 2005 19:48:27 GMT]]></title><description><![CDATA[<p>Mal die C Funktionen:</p>
<pre><code>isalnum()  pruft auf alphanumerische Zeichen, es ist aquivalent zu (isalpha(c) || isdigit(c)).
isalpha()  pruft  auf  Buchstaben,  in  der  standard  &quot;C&quot; Spracherweiterung ist es aquivalent zu (isupper(c) || islower(c)).  In anderen Spracherweiterungen konnen weitere Zeichen sein, fur die isalpha() wahr ist - Zeichen, die weder  GroB-  noch  Kleinbuchstaben sind.
iscntrl()  pruft auf Kontrollzeichen.
isdigit()  pruft auf Ziffern ab.
isgraph()  pruft auf druckbare Zeichen auBer Leerzeichen ab.
islower()  pruft, ob c ein Kleinbuchstabe ist.
isprint()  pruft auf druckbare Zeichen inklusive Leerzeichen ab.
ispunct()  pruft auf druckbare Zeichen, das kein Leerzeichen und kein alphanumerisches Zeichen ist.
isspace()  pruft auf Freizeichen.  In den &quot;C&quot; and &quot;POSIX&quot; Spracherweiterung sind dies: Leerzeichen, Seitenvorschub ('\f'),  Zeilenumbruch ('\n'), Carriage Return ('\r'), Horizontaler Tabulator ('\t'), und verticaler Tabulator ('\v'). isupper()  pruft auf GroBbuchstaben ab.
isxdigit() pruft, ob c eine hexadezimales Ziffer ist, also eine von 0 1 2 3 4 5 6 7 8 9 0 a b c d e f A B C D E F.
</code></pre>
<p>In C++ ist das im std-namespace.</p>
<p>Was du machst ist einfach so lange einzulesen, wie ein Buchstabe kommt.</p>
<pre><code class="language-cpp">char* LesenDatei()
{
    int iPos = 0; // Buchstabenposition
    char cZeichen;
    char Wort[100]; //Denk mal kein Wort ist länger als 100 Zeichen
    int wPos = 0; //Position des Zeichen im Wort

    while (datUrsprung.good()) // Liest Zeile bis zum Ende (EOF)
    {
        datUrsprung.seekg(iPos); // Buchstabenposition im Text
        cZeichen = (char)datUrsprung.get();
        if (isalpha(cZeichen)) { //Test ob es ein Buchstabe ist
          wort[wPos] = cZeichen;
          wPos++;
        } else {
          wort[wPos] = '\0'; // Daran erkennt man das Ende des Wortes
          if (datUrsprung.good()) SchreibenDatei(Wort);
          wPos = 0;
        }
        iPos ++; // Buchstabenposition um 1 erhöht
    }
}
</code></pre>
<p>Musst natürlich noch deine SchreibenDatei() ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/882463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/882463</guid><dc:creator><![CDATA[imhotep]]></dc:creator><pubDate>Wed, 28 Sep 2005 19:48:27 GMT</pubDate></item></channel></rss>