C++Pig拉丁代码,只删除文件信息

C++ Pig latin code, just deletes file info

本文关键字:删除 文件 信息 代码 丁代码 C++Pig      更新时间:2023-10-16

所以我正在尝试制作一个pig拉丁程序,从指定的文件中读取,然后将其转换为pig拉丁。但由于某种原因,它只是清除了原始文件,我不确定我做错了什么。这是我的代码:

int main()
{
    ifstream in;
    char filename[200];
    cout<< "Enter name of input file: ";
    cin.getline(filename,200);
    in.open(filename);
    string out;
    if(!in.is_open())
    {
        cout<<"ERROR failed to open input file " << filename << " BYEn";
        //this.exit();
    }
    char word[200];
    bool result;
    while(!in.eof())
    {
        in>>word;
        result=check(word);
        if(result==true)
            vowel(word);
        else
            consonant(word);
        out += word;
        out += " ";
    }
    cout << out;
}
bool check(char word[200])
{
    if(word[0]=='a'|| word[0]=='e'|| word[0]=='i'|| word[0]=='o'|| word[0]=='u'|| word[0]=='A'|| word[0]=='E'|| word[0]=='I'|| word[0]=='O'|| word[0]=='U')
        return true;
    else
        return false;
}
void vowel (char word[])
{
    int last(0);
    last=strlen(word);
    word[last]='w';
    word[last+1]='a';
    word[last+2]='y';
    word[last+3]='';
}
void consonant(char word[])
{
    int last;
    char temp='';
    last=strlen(word);
    word[0]=temp;
    for(int i=1;i<last-1;i++)
    {
        char tem=word[i];
        word[i]=word[i+1];
        word[i-1]=tem;
    }
    word[last-1]=temp;
    word[last]='a';
    word[last+1]='y';
    word[last+2]='';
}

我包括以下内容:

  • iostream

  • fstream

  • cstring

我为所有的代码道歉,但我真的不知道我的代码哪里错了,所以我把所有的都包括在内。

我正试图在windows8计算机上执行此操作,这可能是部分原因。

我的输出也是空白的,或者只是一个指针。。。

我试过你的代码,原始输入文件仍然可以。

对于输入文件数据:avoid pig,输出为avoidway ig,这是你想要的结果吗?

对于某种猪拉丁语,对于辅音,人们会把第一个字符移到末尾,并在单词上加上ay?如果它是正确的,你可以尝试这个代码:

void consonant(char word[])
{
    int last = strlen(word);
    char temp = word[0];
    for(int i=0; i<last-1; ++i)
    {
        word[i]=word[i+1];
    }
    word[last-1]=temp;
    word[last]='a';
    word[last+1]='y';
    word[last+2]='';
}