首先,关于使用
问题是我需要在程序中使用
程序必须读取一个整数数组。数组中的整数以任何格式提供都无所谓。为了简化任务,程序可以先读取数组的大小,然后每次读取一个新行中的整数。
程序必须处理这些输入(并适当地报告错误):
1. 999999999999999...9(大于整数的数字) 2. 12a3(不要将其读取为整数12) 3. a...z(字符串) 4. 11 aa 22 33\n(所有内容在一行中,可以通过丢弃11后面的所有内容来处理此问题) 5. 输入比输入数组大
可能会有更多不正确的情况,这些是我能想到的唯一几种情况。
如果提供了错误的输入,程序必须要求用户重新输入,直到提供正确的输入,但是之前的正确输入必须保留(只有不正确的输入必须从输入流中清除)。
一切都必须符合C99标准。
sscanf
的其他问题并不能回答我的问题,因为普遍的答案是根本不要使用sscanf
而是使用fgets
或getch
,但这在我的情况下是不可能的。问题是我需要在程序中使用
scanf
,这是个要求。然而,程序还必须处理所有不正确的输入。程序必须读取一个整数数组。数组中的整数以任何格式提供都无所谓。为了简化任务,程序可以先读取数组的大小,然后每次读取一个新行中的整数。
程序必须处理这些输入(并适当地报告错误):
1. 999999999999999...9(大于整数的数字) 2. 12a3(不要将其读取为整数12) 3. a...z(字符串) 4. 11 aa 22 33\n(所有内容在一行中,可以通过丢弃11后面的所有内容来处理此问题) 5. 输入比输入数组大
可能会有更多不正确的情况,这些是我能想到的唯一几种情况。
如果提供了错误的输入,程序必须要求用户重新输入,直到提供正确的输入,但是之前的正确输入必须保留(只有不正确的输入必须从输入流中清除)。
一切都必须符合C99标准。