对于此代码,它要求第一首歌曲,并存储和打印它。但是在第一个条目之后,我被问到我是否会像我想要的那样继续,但是在我输入 Y 之后,它会跳过我的歌曲问题和 getline 函数并直接询问我是否要继续,我在这里做错了什么?
这是我的输出
输入歌曲的名称。我需要帮助
您要继续吗(是/否)?y
输入歌曲的名称。是否要继续(是/否)?y
输入歌曲的名称。是否要继续(是/否)?y
输入歌曲的名称。是否要继续(是/否)?n
输入了 4 首歌曲名称。
我需要帮助
我想要的输出和预期的输出在哪里
输入歌曲的名称。我需要帮助
您要继续吗(是/否)?y
输入歌曲的名称。打印
是否要继续 (y/n)?y
输入歌曲的名称。并输入
您要继续(y/n)吗?y
输入歌曲的名称。这些歌曲
你想继续吗(y/n)?n
输入了 4 首歌曲名称。
我需要帮助
打印
和输入
这些歌曲
/*This program will ask a user to enter a song list. By doing this each time that the user enters
a song, he/she will then be asked if they want to enter another song, if yes then they will enter another song.There will be a maximum of 15 songs.
This progarm will help a user keep track of their songs. But then the program will output the amount of songs, and what they are.
input:A song. Then a yes or no, if yes, another song, if no the program will output.
output:The number of songs, and then the songs themselves, each song with it's own individual line.
processing: There will be two functions, one of which will ask the user for the songs and store them, and another for which will be computing
the output.
*/
#include<iostream>
#include<string>
using namespace std;
int input(string[15], int);
void printArray(string[15], int);
int main()
{
const int arraysize=15;
string songarray[arraysize];
int x=input(songarray, arraysize);
cout<<"There were "<<x<<" song titles entered.\n";
printArray(songarray, x);
return 0;
}
/*This function will ask for the users input for a song and store the song in the songarray. He or she
will then be asked whether or not they want to enter another song, if so, then they will enter another song.
input:a song, y/Y or n/N for if they want to continue or not with another song
output:song will be sent to main function
processing: A while loop will be used for the user to enter is Y or N, and a for loop (while loop nested) for the user to enter the
songs
*/
int input(string titles[15], int rows)
{
char answer='y';
int k=0;
for(int i=0;i<rows && (answer=='Y' || answer=='y');i++)
{
cout<<"Enter the name of a song. ";
getline(cin, titles[i]);
cout<<"Do you want to continue (y/n)? ";
cin>>answer;
k=i+1;
}
return k;
}
/*The purpose of this function is to print the array from the main function.
input:accepts the array from the main function
output: prints the array
processing:nested loops will pring this array.
*/
void printArray(string playlist[15], int quantity)
{
for(int j=0; j<quantity; j++)
{
cout<<playlist[j];
}
}