hilfe zu einem fehler
-
ich bin noch anfänger und bekomm einen merkwürdigen fehler, bei
....
int wordlist(int zZahl) {ifstream FileIn("wordlist.txt");
if (FileIn) // Falls FileIn gültig ist.
{
vector<string> contents;// Solange kein Fehler auftritt und nicht eof
for (string ReadString; getline(FileIn, ReadString); ) {
contents.push_back(ReadString); // Aktuelle Zeile in den Vektor einfügen
}
contents[zZahl];
}
//return zZahl;
}int main(int argc, char *argv[])
{
cout<<wordlist(1); //bekomm tatt string in datei nur irgendeine
system("PAUSE"); //zahl
return 0;
}hat der jemand eine lösung? thx für jeden lösungsvorschlag.
-
Hallo,
Was genau soll das Programm machen? Bitte verwende Code-Tags, dann kann man den
Code besser lesen.mfg
v R
-
Dein Rückgabetyp der Funktion ist int, d.h. du gibst einfach immer wieder die Zahl zurück die du der Funktion übergibst. In diesem Fall ist das die '1'.
Da du nun einen string haben willst, musst du auch einen string als Rückgabewert angeben:
#include <vector> #include <string> #include <fstream> #include <iostream> using namespace std; string wordlist(int zZahl) { vector<string> contents; ifstream FileIn("wordlist.txt"); if (FileIn) // Falls FileIn gültig ist. { // Solange kein Fehler auftritt und nicht eof for (string ReadString; getline(FileIn, ReadString); ) contents.push_back(ReadString); // Aktuelle Zeile in den Vektor einfügen } return contents[zZahl]; } int main(int argc, char *argv[]) { cout<<wordlist(2)<<endl; //bekomm tatt string in datei nur irgendeine system("PAUSE"); //zahl return 0; }
-
Der Code koennte uebrigens boese ins Auge gehen. Naemlich dann, wenn die Anzahl
Zeilen, welche gelesen werden sollen < als zZahl ist.mfg
v R
-
das werd ich noch korrigieren, woher weiß man eigentlich was man genau mit return zurückgeben muss?
cu
-
was drückt return eigentlich aus, hab noch nie ne gute erklärung gefunden.
...
hier kann man sich ja sparen??unsigned int randzahl(int bereich) {
long sek;
time(&sek);
srand( (unsigned) sek);
int zufall = 1 + ( rand() % bereich );
return zufall;
}
.....int main(int argc, char *argv[])
{
cout<<randzahl(10);
system("PAUSE");
return 0;
}
-
return liefert etwas zurück, etwas wird returned. Das ganze ist von einem bestimmten Typ.
Bei deinem letzten beispiel ist der typ unsigned int, d.h. positive zahlen inklusive 0.
Jetzt übergibts du der Funktion einen Wert, in deinem bsp. 10, ein zufallswert wir derrechnet und dieser wird returned.
-
mit deiner funktion randzahl wirst du schlechte Zufallszahlen bekommen. Benutze einfach nur rand. aber einmal beim programmstart srand (time (0)) aufrufen.