gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 06:21:33 25 4
gpt4 key购买 nike

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

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 << " BYE\n";
//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]='\0';

}

void consonant(char word[])
{
int last;
char temp='\0';
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]='\0';
}

我包括以下内容:

  • iostream

  • 流媒体

  • 字符串

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

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

我的输出也是空白或只是一个指针...

最佳答案

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

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

对于某种 pig 拉丁语,对于辅音的人会将第一个字符移到末尾并在单词后添加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]='\0';
}

关于C++ Pig 拉丁代码,只删除文件信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29222984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com