複雜的問題,可能很簡單的答案。所以我需要製作的程序不能包含除String,iostream和vector之外的任何庫。我需要創建一個具有3個功能的程序。一個創建一個整數矢量,一個反轉矢量,一個打印矢量。爲了獲取值,我需要使用getline來獲取字符串,如果字符串狀態退出,我們會停止向其中添加新值。其他方面,我們需要測試一個整數(正數或負數)並將其添加到矢量中。我的代碼開始變得複雜,所以我真的需要一些幫助。以下是我到目前爲止。如果這很重要,我也使用Visual Studio。感謝您提前提供任何幫助!我的問題是當我運行該程序時,它只會輸出第一個數字。我不知道爲什麼,並想知道我做錯了什麼。使用矢量C++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<int> CreateVector()
{
string tempvariable;
bool quit = false;
vector<int> userinput;
cout << "Please enter in an integer, type 'quit' to exit " << endl;
while (!quit)
{
getline(cin, tempvariable);
if (tempvariable == "quit")
quit = true;
else
{
bool isaninteger = true;
for(int i = 1; i <= tempvariable.size(); i++)
{
if (tempvariable[i] = "-" || isdigit(tempvariable[i]))
continue;
else
{
cout << "You entered in an incorrect option, please enter in a correct option" << endl;
cin.clear();
cin.ignore();
isaninteger = false;
break;
}
}
if (isaninteger)
userinput.push_back(stoi(tempvariable));
cout << "Please enter in an integer, type 'quit' to exit " << endl;
}
}
return userinput;
}
void printVector(vector<int> userinput)
{
int amountofspots = userinput.size();
cout << "Your Vector is ";
for (int i = 0; i < amountofspots; i++)
{
if (i = (amountofspots - 1))
cout << userinput.at(i) << endl;
else
cout << userinput.at(i) << " , ";
}
}
void reverseVector(vector<int>& userinput)
{
int amountofspots = userinput.size();
vector<int> tempvector;
for (int i = 0; i < amountofspots; i++)
tempvector.push_back(userinput.at(amountofspots - i));
for (int i = 0; i < amountofspots; i++)
userinput.pop_back();
for (int i = 0; i < amountofspots; i++)
userinput.push_back(tempvector.at(i));
}
int main()
{
vector<int> CreatedVector = CreateVector();
printVector(CreatedVector);
reverseVector(CreatedVector);
printVector(CreatedVector);
system("pause");
return 0;
}
你的問題具體是什麼?這聽起來像你基本上希望我們重寫你的代碼。 – CoryKramer
而且?我在那裏沒有看到問題。 – NathanOliver
當您使用調試器時,哪些語句導致問題?你確實運行了調試器並查看了變量,不是嗎? –