Ich versuche, aus einer Datei zu lesen, die Sätze enthält und sie zwei Buchstaben gleichzeitig ausgibt.C++: Wie gebe ich zwei Buchstaben hintereinander aus?
IE:
>hello world
Output:
he ll ow or ld
Hier ist was ich habe.
#include<iostream>
#include<string>
#include<fstream>
#include<vector>
using namespace std;
int main()
{
string input;
ifstream infile;
infile.open("wordpairs.txt");
while(!infile.eof())
{
getline(infile, input);
for(int i = 0; i < input.length(); i++) //accidentally posted wrong code last time. My apologies.
{
cout << input[i] << input[i+1] << " ";
}
cout << endl;
}
infile.close();
return 0;
}
bearbeiten & Run
und das ist, was es gibt derzeit zum Beispiel sagen können, "Hallo Welt"
output:
h he el ll lo ow eo or rl ld d
Wie behebe ich das? Ich denke, es hat etwas mit meiner for-Schleife zu tun, die Eingabe [i + 1] anruft, aber ich weiß nicht, wie man andere Wörter kombiniert, als das zu tun.
Was haben Sie können nicht möglicherweise kompilieren, aufgrund eines offensichtlichen Tippfehler und wird in einer Zusammenstellung führen Error. Sie können den angezeigten Code möglicherweise nicht ausgeführt haben, wie Sie behaupten. Bitte zeigen Sie echten Code anstelle eines gefälschten Codes. Das einzige, was Sie als Antwort auf gefälschten Code bekommen, sind gefälschte Antworten. Obwohl Ihr Paar Bugs offensichtlich zu sein scheint; Da dies natürlich auch nicht der eigentliche Code ist, der zusammengestellt wurde, ist es wahrscheinlich eine Zeitverschwendung, sie zu diskutieren. –
Sie erhöhen 'i' in Ihrer Schleife um '1', sollte 'i + = 2' sein. Fügen Sie dann innerhalb der Schleife ein Häkchen hinzu, um sicherzustellen, dass Sie nicht auf ein Element außerhalb der Grenzen zugreifen. – cantordust
Ihre gewünschte Ausgabe scheint Leerzeichen zu ignorieren; scheint, als müsste man 'infile >> c1 >> c2;' dann cout << c1 << c2; 'immer und immer wieder nachahmen. (Modulo muss ungleich große Eingaben verarbeiten) – ShadowRanger