私のコードにはちょっとしたエラーがあるようです。C++ STLリンクリスト
私の主な問題は、私が「H」に続く「P」のいずれかの発生を変更したい部分です。私のテストでは、それを何らかの理由で 'q'に変更します。これを 'f'に変更したいときに使用します。
の便宜のために問題と方法は、ループの第二の空隙の変化()、です。
誰かが助けてくれますか?
#include <iostream>
#include <list>
#include <ctype.h>
#include <fstream>
using namespace std;
void printList(const list<char> &myList);
void fillList(list<char> &myList);
void change(list <char> &myList);
void printList(const list<char> &myList)
{
list<char>::const_iterator itr;
for (itr = myList.begin(); itr != myList.end(); itr++) {
cout <<*itr;
}
cout << '\n' << endl;
}
void fillList(list<char> &myList)
{
ifstream file("test.txt");
string print;
while(file >> print){
for (int i = 0; i<print.length(); i++) {
myList.push_back(print[i]);
}
myList.push_back(' ');
}
}
void change(list <char> &myList)
{
list<char>::iterator itr;
//rules are as follows
for (itr = myList.begin(); itr != myList.end(); itr++) {
if (*itr == 'w'){
*itr = 'v';
}
}
for (itr = myList.begin(); itr != myList.end(); itr++) {
if((*itr == 'p' && ++*itr == 'h')){// rule incomplete ask!
*itr = 'f';
}
}
}
int main()
{
list<char> myList;
ifstream file("test.txt");
const string print;
fillList(myList);
printList(myList);
change(myList);
printList(myList);
return 0;
}
[あなたは] 'H' に続く 'P' のいずれかの発生を変更したいだけ*セクション* – user2079303
申し訳ありませんが含まれている[MCVE]作成し、I私の説明がちょっとばかげていることに気づいたので、私はそれが私がしたいことをよりよく反映するように更新しました。 – TheByteMonster
私は '++ * itr'があなたが思っていることをしていないと賭けています。そして、あなたのファイルが 'p'で終わらないことを願っていました。 – WhozCraig