C++ 试着用C+编写一个Pig拉丁程序+;,我无法将字符串中的单个单词放入cstring中进行编辑

C++ 试着用C+编写一个Pig拉丁程序+;,我无法将字符串中的单个单词放入cstring中进行编辑,c++,C++,程序应该读入一行文件,然后写出语句的英文版,然后写出它的拉丁版。然后继续,直到文件完成 我想我遇到的问题是,我不知道如何将字符串的每个单词输入到cstring中进行编辑 int main() { ifstream inFile; inFile.open("ASSGN8-A.txt"); char myCString[12], pigLatin[12]; string myString; char letter; bool eof = false;

程序应该读入一行文件,然后写出语句的英文版,然后写出它的拉丁版。然后继续,直到文件完成

我想我遇到的问题是,我不知道如何将字符串的每个单词输入到cstring中进行编辑

int main()
{
    ifstream inFile;
    inFile.open("ASSGN8-A.txt");
    char myCString[12], pigLatin[12];
    string myString;
    char letter;
    bool eof = false;

    do
    {
        std::getline(inFile, myString);
        cout << "English: " << myString << endl;
        cout << "Pig Latin: ";
        if (myString == "\0")
        {
            myCString = myString;
            letter = myCString[0];
            for (int i = 0; i < 12; i++)
            {
                pigLatin[i] = myCString[i+1];
            }
            cout << pigLatin << "ay";

        }
        if(inFile.eof())
        {
            eof = true;
        }
    }while (!eof);
}
intmain()
{
河流充填;
infle.open(“ASSGN8-A.txt”);
char-myCString[12],pigLatin[12];
字符串myString;
字符字母;
bool-eof=false;
做
{
std::getline(infle,myString);

cout您可以使用以下方法将字符串拆分为单词:

vector<string> words;
istringstream n(myString);
string word;
while(getline(n, word, ' ')) words.push_back(word);
向量词;
istringstream n(myString);
字符串字;
while(getline(n,word,))单词。推回(word);

为什么需要一个cstring来编辑?无关:
if(infle.eof())
如果您有一个IO错误并且从未到达流的末尾怎么办?在那里设置一个无限循环。
while(std::getline(infle,myString))
是一个比您目前使用的
do
/
安全得多的选项,而
myCString=myString;
是一个非常糟糕的主意,似乎没有必要。只需使用
字符串及其
[]
重载。
vector
在这里是浪费性的过度使用。当您看到一个单词时,只需处理并打印它。@user4581301好的,这只是一个通用示例。