垂直打印文字

Printing words vertically

本文关键字:文字 打印 垂直      更新时间:2023-10-16

所以我刚开始学习C++,所以我不熟悉这种语言,尽管我确实了解C。我正在尝试垂直打印单词。这是给出的问题。

创建一个由25个字符串组成的数组。

使用从cin读取的sentinel循环,直到数组已满或到达输入端(当用户按下Ctrl-D时(,以先到者为准。

sentinel循环结束后,使用for循环在数组中移动。

请记住,不要超过输入的最后一个数组元素。

打印一个数组元素(一个字符串(,后跟一个换行

使用for循环在刚刚打印的字符串的字符之间移动打印一个字符,后跟一个换行

#include <iostream>
#include <string> 
#include <iomanip>
using namespace std;
int main()
{
char word;
int count = 0;
cout << "Enter a word: (press Ctrl-D to quit)";
cin >> word;
int array1[25];
while (!cin.eof())
{
count = count + 1;
cout << "Enter a word: (press Ctrl-D to quit)";
cin >> word;
} //end while
for (word = 0; word <= array1[count]; word++)
{
cout << 'end1' << 'end1' << "There were " << count << "Words Entered" << 'end1';
}
} //end main

代码是粗糙的,它会编译,但当它处于一个无限循环中时,数字会出现在文本之后。

只是为了

#include <iostream>
#include <string> 
#include <iomanip>
#include <vector>
using namespace std;
int main() {
string word;
int count = 0;
vector<string> arrayOfStrings;
cout << "Enter a word: (press Ctrl-D to quit)";
while(cin >> word){
if(count < 25){
arrayOfStrings.push_back(word);
count = count + 1;
cout << "Enter a word: (press Ctrl-D to quit)";
} else {
cout << "25 strings was entered";
break;
}
}//end while
for ( int j = 0; j < arrayOfStrings.size(); j++ ){
cout << 'n' << 'n' << $j << "-st string entered " << arrayOfStrings[j] << 'n';
}
}//end main

这段代码正好读取25个字符串,记住它们,甚至在以后输出它们。这只是一个教育性的例子,基本上忽略了记忆管理我强烈建议不要在任何实际的代码中使用它。我写这篇文章花了大约5分钟。

这段代码中有一些错误-也许如果你熟悉C,那么用C快速编写一个版本,并将其翻译成更现代的"类C++"版本。也许看看std::stringstd::vector可以让生活变得更轻松。

int array1[25];需要存储字符串,因此它的类型错误。

while (!cin.eof())循环还需要检查它是否没有超过上述数组的边界(即最多25个字(。

需要精确循环n次的for (word = 0; word <= array1[count]; word++)循环,其中n是输入的字数,即在上述while循环中。