如何打印出特定的数字模式

时间:2018-09-21 18:18:02

标签: c

我只是有一个关于C的问题。我有一个文件,其文本格式为:

7034327874
5408438437
3267239807
1824566789

我想知道如何读入数据并在另一个文件中打印出来:

703-432-7874
540-843-8437
326-723-9807
182-456-6789

1 个答案:

答案 0 :(得分:0)

只需将这些数字视为字符的字符串(每个字符恰好是一个数字)。然后对它们进行字符处理。

例如:

char str[16];
memset (str, 0, sizeof(str));
if (scanf(" %15[0-9]", &str) > 0) 
  printf("%.3s", str); 

应该用0734327574来输出073(请注意,您的示例没有说明在这种情况下应该发生的情况,而我正在猜测一种方式如果0734327574实际上是十进制数字124891004的八进制数字,我的猜测可能是错误的。

其余的是读者的练习。当然,您需要仔细阅读memsetscanfprintf的文档。不要忘记以printf结尾\n格式的字符串或在stdout上调用fflush(通常是行缓冲的)。

请记住,numbers没有数字。只有它们的符号有数字。数字20,用罗马符号 XX ,英语二十,法语 Vent 和十六进制0x14表示,在八进制024(甚至24 8 )中,在二进制10100中,因为简单的算术表达式3 * 7-1仍然是相同的数字(是我的手指数的两倍,也是巴黎arrondissements的数)。