C++ 试着用C+编写一个Pig拉丁程序+;,我无法将字符串中的单个单词放入cstring中进行编辑
程序应该读入一行文件,然后写出语句的英文版,然后写出它的拉丁版。然后继续,直到文件完成 我想我遇到的问题是,我不知道如何将字符串的每个单词输入到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;
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好的,这只是一个通用示例。