Моих текущих проектов предполагают, чтобы получить пользовательский ввод для участников (целых) и новых участников (целых), определяют массив для отдельных входов (участников и участников), затем прокрутите код, указав имя участника или нового участника. Хотя в моем первом for-loop (И во-вторых, если бы мой код дошел до него), он начинается с запроса «Name # 1:», после чего вход начинает очень плохо работать и выходит из программы. Я думаю, что проблема в указателях, но вот мой код:для цикла с определенным пользователем массива - C++
#include<iostream>
using namespace std;
int main()
{
int dV = 1;
int students;
int newStud;
cout << "Enter number of participants : ";
cin >> students;
system("CLS");
cout << "Please enter the number of new participants: ";
cin >> newStud;
system("CLS");
while(newStud > students)
{
cout << "You entered a number greater than the overall participants!" << endl << endl;
cout << "Please enter the number of new participants: ";
cin >> newStud;
system("CLS");
}
int *pointer1 = new int[students]; //Pointer to an array of size students(Variable)
int *pointer2 = new int[newStud]; //Pointer to an array of size newStud(Variable)
for (int i = 0; i < students; i++)
{
cout << "Name #" << dV << ": ";
cin >> pointer1[i]; //ERROR HERE: After first input, program text blinks a few times then exits
system("PAUSE"); //Used for debugging
system("CLS");
dV++;
}
for (int i = 0; i < newStud; i++)
{
cout << "New name #" << dV << ": ";
cin >> pointer2[i];
system("CLS");
dV++;
}
return 0;
}
Нет ничего плохого в том, что 'cin >> variable' и' getline' читает строки, поэтому я не знаю, как вы планируете «набирать» результат на целое число. – Blastfurnace
Этот код безопасно преобразует строку в номер. cin не считается безопасным и вообще getline(); является предпочтительным способом обработки входных данных. 'stringstream myStream (input); if (myStream >> myNumber) break; cout << "Недопустимый номер, повторите попытку" << endl; } cout << "Вы ввели:" << myNumber << endl << endl; ' –
Использование' std :: stringstream' или другой функции для преобразования из строки в 'int' не является __typecast__. [Вот ссылка на связанном вами сайте.] (Http://www.cplusplus.com/doc/tutorial/typecasting/) – Blastfurnace