Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对于循环构造,从c++;程序_C++_For Loop - Fatal编程技术网

C++ 对于循环构造,从c++;程序

C++ 对于循环构造,从c++;程序,c++,for-loop,C++,For Loop,我在for构造中遇到了一个问题,我不知道为什么我的计数从0开始,但是你不能在上面写(你可以从寄存器1开始写)。我在代码中标记了问题的位置 #include <iostream> #include <string> #include <vector> int main() { std::string day, date; int registerCount; std::cout << "INPUT DATA" <<

我在for构造中遇到了一个问题,我不知道为什么我的计数从0开始,但是你不能在上面写(你可以从寄存器1开始写)。我在代码中标记了问题的位置

#include <iostream>
#include <string>
#include <vector>

int main()
{
std::string day, date;
int registerCount;

std::cout << "INPUT DATA"
          << std::endl << std::endl
          << "Enter the day in which you want to perform the register: "
          << std::endl;
std::cin >> day;
std::cout << "DATE:" << std::endl;
std::cin >> date;
std::cout << "Enter the number of registers you wanna perfom for the day "
          << day << ":" << std::endl;
std::cin >> registerCount;

std::vector<std::string> registers(registerCount);
for (int i = 0; i < registerCount; ++i)     **here is the problem**
{
    std::cout << "Register " << i << ":" << std::endl;       **it starts from 0 but you can't write on Register 0**
    std::getline(std::cin, registers[i]);
}

std::cout << "The data for the day of " << day << " are the following: "
          << std::endl;

std::cout << "DATE: " << date << std::endl;
for (int i = 0; i < registerCount; ++i)
    std::cout << registers[i] << std::endl;
}
#包括
#包括
#包括
int main()
{
std::字符串日期;
国际注册计数;
标准::cout
for(int i=0;i
在这里,您将i定义为从0开始。非常简单,您需要做的就是将“i=0”更改为“i=1”

您分配给该向量的方式看起来也有点错误。我认为您需要在该语法中对向量使用push_back(),但我不太熟悉向量的所有不同运算符。

使用

std::cin.ignore(std::numeric_limits::max(),'\n');

标题-
#包括

在你

std::cin>>注册表计数;


“吃光”后面的换行符来自上一个
std::cin
,这是跳过第一个输入的原因

std::cout它不起作用我试过如果我把i+1放进去,它将从1开始,并且能够在寄存器2上写入。我不明白你的问题,在循环中,你在0中初始化变量…你的实际问题是什么?你没有punctu这使我很难理解。问题是我不能在0上写!我只能从寄存器1开始写。你能为我的程序写个性化版本吗?请只写cin。忽略function@CokeThe非常感谢,这解决了我的问题。
for (int i = 0; i < registerCount; ++i)