C ++没有在我的%运算符中读取(错误:不匹配'运算符%')

时间:2017-10-01 18:04:06

标签: c++

Comp Sci 201学生,在这个实验室遇到很多麻烦。我确信此刻我应该是正确的,但是它一直在抛弃我的代码,引用%,但我不明白为什么它不起作用。



HSSFCellStyle cS=workbook.createCellStyle();
cS.setBorderLeft(BorderStyle.THIN);




以下是错误消息

main.cpp:在函数' int main()': main.cpp:49:42:错误:不匹配'运算符%' (操作数类型是' __ gnu_cxx :: __ alloc_traits>> :: value_type {aka std :: __ cxx11 :: basic_string}'和' int')        if((cellNum.at((i - 1)+ vecSize)%vecSize)==" *"){             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~

2 个答案:

答案 0 :(得分:0)

cellNum包含字符串,你不能通过任何东西(特别是int)来调制字符串。那是你得到的编译器错误 - 你期望" " % 10返回什么?最初根据您的代码注意cellNum[0]==" "

问题:

  1. vecSize未初始化
  2. 如果vecSize是矢量大小,为什么需要在循环中计算它?不是20吗?
  3. 20应在顶部定义为const int
  4. 这些只是快速浏览一下。

答案 1 :(得分:0)

记住parens。 cellNum.at((i - 1) + vecSize) % vecSize超出数组范围,然后%操作是无意义的,因此出现错误消息。

看起来你想要cellNum.at((i - 1 + vecSize) % vecSize)对数组进行模数索引。