首页 > 解决方案 > 如何基于 N 输入在 C++ 中添加列

问题描述

// Example program
#include <iostream>
#include <string>
using namespace std;
int main() {
  int num1;
  std::string u = "";
  cout << "Enter number ";
  cin >> num1;
  
  for (int x = 1; x <= num1; x++) {
    for (int y = 1; y <= num1; y++) {
      u = u + ((x-1) * num1 + y + "");
    }
    cout << u << "";
  }
}

如何使用for循环添加列?

我的示例问题如果用户输入 3 输出变为

1 2 3
4 5 6
7 8 9

我的错误是,如果我在 cpp.sh 中运行此代码,则错误为 Enter number 3 答案是这样的。

;@;@;@;@;@;@;@;@;@@ 

我应该怎么办?

标签: c++

解决方案


您正在尝试将数字附加到std::string. Aint不能附加到std::string. 您需要std::string在连接之前将数字转换为。我相信std::to_string()<string>有所帮助。

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int num1;
    std::string u = "";
    cout << "Enter number ";
    cin >> num1;

    for (int x = 1; x <= num1; x++) {
        u.clear();  // clear string
        for (int y = 1; y <= num1; y++) {
            u = u + std::to_string((x - 1) * num1 + y) + " ";  // append string-converted number
        }
        cout << u << endl;  // print new line
    }
    return 0;
}

推荐阅读