【问题标题】:compiler issues with simple array program that wont build due to limitations in scope perhaps [closed]由于范围限制而无法构建的简单数组程序的编译器问题可能[关闭]
【发布时间】:2019-03-03 04:46:59
【问题描述】:

这是我关于堆栈溢出的第一个问题。我遇到编译器问题,想知道是否有人可以帮助我找出原因。

这是我每次尝试编译时都会收到的不幸错误消息。

//*************************************************************************
// This program uses array with a for loop control structure to prompt the user to enter their most convenient days of the week to work

#include <iostream>
using namespace std;
#include <array>
#include <cstddef>


int main() {
    int whichDay = 0; 
    array< string, 7> daysOfweek = 
    {
        "sunday", 
        "monday", 
        "tuesday", 
        "wednesday", 
        "thursday", 
        "Friday", 
        "saturday"
    };

    for (size_t x= 0; x< daysOfweek.size(); x++)
    {
        cout << daysOfWeek[x] << endl;
    };

    cout << "enter your work day: " ;
    cin >>  whichDay;
    cout << daysOfWeek[whichDay] += 1
    return 0;
}

【问题讨论】:

  • prog.cpp: In function 'int main()': prog.cpp:25:10: error: 'daysOfWeek' 未在此范围内声明 cout
  • 一个简单的错字daysOfWeek[x]不应该有大写W
  • 谢谢你迈克尔!我仍然有一些错误,它不会让我对 std:: 使用 = 运算符,它不会让我将参数 1 转换为 std:: 但是我对如何更改语法感到困惑
  • daysOfweek[whichDay] 是一个字符串,所以 +=1 无效。
  • 运行 clang_format 或其他格式化工具会突出一些错别字。

标签: c++ arrays for-loop


【解决方案1】:

这是您的问题:cout &lt;&lt; daysOfWeek[whichDay] += 1

您希望"monday" += 1 的结果是什么?

您可能只想显示所选日期,因此您只需要:

cout << daysOfWeek[whichDay];

好吧,您可能还想检查输入值是否在有效范围内:)

【讨论】:

  • 你是对的!谢谢你的视觉效果,绝对是一个愚蠢的错误
  • 没问题@jameson,如果解决了问题请采纳。
  • 抱歉,回复晚了一段时间才弄清楚该怎么做
猜你喜欢
  • 1970-01-01
  • 2021-10-23
  • 2022-06-15
  • 2020-01-05
  • 2023-04-03
  • 1970-01-01
  • 2013-12-09
  • 1970-01-01
  • 2019-05-07
相关资源
最近更新 更多