циклы — Как мне распечатать массив, приостановить его и продолжить печать массива в C ++?

Как отображать 3 имени одновременно, делая паузу, чтобы позволить пользователю нажать клавишу, прежде чем список продолжит отображаться.

Мой код теперь зацикливает только первые 3 значения массива

#include <iostream>
#include <string>
#include <iomanip>

using std::setw;
using namespace std;

int main() {

string a;
string names[10]; //size of array

for (int i = 0; i < 10; i++)
{
std::cout << "Enter name ";
std::cin >> a; //user input

names[i] = a; //assigns input to array
}
cout << "\n";

for (int k = 0; k < 10; k++)
{
for (int j = 0; j < 3; j++)
{
cout << names[j] << endl;
}

system("pause");
}

}

2

Решение

Я изменил ответ на основе вашего комментария. Вместо того, чтобы спать, мы просто делаем паузу и ждем, пока пользователь ничего не введет в клавиатуру. Также примечание, так как вы используете пространство имен, вам не нужно включать std::Я решил использовать это, так как я не был уверен, каким образом вы хотели.

#include <iostream>
#include <string>
#include <iomanip>

using std::setw;
using namespace std;

int main() {

string a;
int pauseCheck = 0; //new var
string names[10]; //size of array

for (int i = 0; i < 10; i++) {
std::cout << "Enter name ";
std::cin >> a; //user input

names[i] = a; //assigns input to array
}
cout << "\n";

for (int k = 0; k < 10; k++) {

cout << names[k] << endl;
pauseCheck++; //increments check

if (pauseCheck == 3) { //if equals 3
system("pause"); //we pause till user input
pauseCheck = 0; //reset pause check
}
}
system("pause"); //last and final pause before program ends
}
3

Другие решения

Вот еще один способ сделать это, который я считаю немного более простым:

#include <iostream>
#include <string>
#include <iomanip>

using std::setw;
using namespace std;

int main() {

string a;
string names[10]; //size of array

for (int i = 0; i < 10; i++)
{
std::cout << "Enter name ";
std::cin >> a; //user input

names[i] = a; //assigns input to array
}
cout << "\n";

for (int k = 0; k < 10; k++)
{
cout << names[k] << endl;

if((k + 1) % 3 == 0) // everytime k + 1 is divisible by 3, let user hit a key
system("pause");
}
}
0

Вы можете ждать Enter-Press с другим std::cin, просто напишите в мусорное значение.

Я думаю, что другие способы не являются независимыми от платформы. Конечно, вы можете использовать Windows API или Unix, чтобы получить нажатие клавиши.

-1
По вопросам рекламы [email protected]