您好,我想知道是否有人可以在这里帮助我,我是新手编程并尝试编写一个程序,从0开始生成电话号码,网络提供商从0803开始共计11个号码。我想为营销生成一些数字。我得到的错误说,无效的八进制数字,但我想让它工作,所以我不需要自己添加零
1. #include iostream
2. #include fstream
3. using namespace std;
4. int main()
5. {
6. long numb = 08030000000;
7. ofstream generated_numb;
8. for(int i = 08030000000; i < 08040000000; i++)
9. {
10. generated_numb.open("mtn_numbers.txt");
11. generated_numb << i << endl;
12. generated_numb.close();
13. }
14. while(true){}
15. return 0;
16. }
答案 0 :(得分:2)
出于各种原因,最好将电话号码作为字符串处理。
您遇到的错误是几种计算机语言表示八进制(基数为8)的常量带有前导0
。要写入十进制数字,请从数字1到9开始。
电话号码通常包含各种标点符号,例如.
,
-
(
和)
作为初学者。某些电话公司内部号码包含“数字”A
到D
。此外,PBX中的分机号码通常用x
分隔。
(对第一条评论的回应)
这样的事情会实现你的意图,因为你的要求是非一般的电话号码处理:
FILE *f = fopen ("mtn_numbers.txt", "w");
if (!f)
fprintf (stderr, "error opening output file\n");
else
{
for (long n = 0; n < 10000000; ++n)
fprintf (f, "0803%07Ld\n", n);
fclose (f);
}