C++ 如何输入字符,然后根据字符的值输出数字序列?

C++ 如何输入字符,然后根据字符的值输出数字序列?,c++,C++,因此,我正在尝试编写一个程序,它将输入一个介于0和127之间的字符,然后以以下形式输出一个数字字符串: - If I input a 0, the output should be a 0 - If I input a 5, the output should be 012345 - If I input a 9, the output should be 0123456789 - If I input a 14, the output should be 012345678901234

因此,我正在尝试编写一个程序,它将输入一个介于0和127之间的字符,然后以以下形式输出一个数字字符串:

 - If I input a 0, the output should be a 0
 - If I input a 5, the output should be 012345
 - If I input a 9, the output should be 0123456789
 - If I input a 14, the output should be 012345678901234
 - If I input a 27, the output should be 0123456789012345678901234567
因此,我正在寻找从0到9最多10个字符的增量,然后重复序列,直到达到最后一个数字。在27中,由于前一个0,实际上有28个字符输出,但最后一个仍然是7

我知道我想使用for循环,但我在想如何实现这一点时遇到了一些困难。我可能可以使用ASCII 48到57作为输出,但我的问题是如何使输入工作。。。我应该将其静态转换为整数,然后再使用它吗?我有点撞到墙了。

试试下面的方法:

#include <iostream>

int main() {
   char input;

   std::cin >> input;

   if (input >= 0 && input <= 127) {
      for (int i = 0; i <= n; i++) std::cout << i % 10;
   }
}
#包括
int main(){
字符输入;
std::cin>>输入;

如果(输入>=0&&input转换为
int N
,循环
i=0
通过
N
,每次迭代打印
i%10
。关于输入,
strtol()
atoi()
等都是候选项,尽管我可能只是
int N;如果(cin>>N){..loop
。输出可以是严格意义上的数字。转换为int需要考虑的是,它使用ASCII字符索引中的一个数字,具体取决于输入的第一个数字。因此,如果我将127转换为int,它实际上是49(表中的1)。如果我输入0,然后将其转换为int,它会将其转换为48…因此它会多次运行循环。我必须将char作为输入,而不是int.table??什么表格??它的第一句话是在您刚才留下的注释中;在问题中根本没有提到“table”。如果您转换
“127”
int
最好是
127
。不要强制转换。使用转换例程,可以是内置于流提取操作符中的例程,也可以是类似于
strtol()的例程
。我在问题中确实提到了输入必须是介于0和127之间的字符。我应该使用类似stringstream的东西进行转换吗?您希望程序对无效输入做什么?如果(输入<0 | |输入>127){//打印错误输入}或者{//执行循环
(a),您可以转到
i如果(i@WhozCraig谢谢,我只是想小心点。问题是,输入必须是一个介于0和127之间的字符。所以它必须是字符输入的形式;cin>>输入;然后从这开始我必须做数字序列。@Noobacode没问题,你所要做的就是用if语句进行简单的范围检查。