【发布时间】:2016-03-15 18:53:21
【问题描述】:
我需要我的程序读取用户输入的一串数字,然后将每个数字分配给一个 int 变量:
94715 是用户输入的字符串
然后
a=9
b=4
c=7
d=1
e=5
所以我可以
if (a < b), c*d+e, a-e, etc
我已经搜索了一些命令(getline、string.substr(ind,n)、getc、fgetc、atoi 等)我知道我很接近但我找不到我正在寻找的确切示例.
我找到的最简单最直接的方法是
stringstream convert(string1);
convert>>variable;
但它会转换整个字符串,如果有办法在其中添加一个 ind 位置,比如
string1.substr(0,1)
这样就行了……
【问题讨论】:
-
所以数字应该是个十进制数字?记住
char c = '0'; c - '0' == 0. -
输入有限制吗?例如,用户必须准确输入 5 位数字等...
-
读取一个无符号整数,确保该值在 [00000, 100000) 范围内并提取数字(模 10 并除以 10)。对于前导零,您必须读取一个由五个字符组成的字符串并通过 istingstream 进行转换。
-
替代方案:逐个字符读取并转换每个字符(可能会更好)