我有一个数字如“100000”的文件是否有将数字存储在数组中的方法?例如,我做了一个数组[100],我想要数组[0] = 1,数组[1] = 0,数组[2] = 0等。我查了它,但从我收集的,如果我使用char数组需要它作为一个整体。fscanf fscanf一个数字并将每个数字存储在数组c中
0
A
回答
0
数字是以文字'100000'存储,还是以二进制表示形式存储?如果它是字面值'100000',只需将它读入字符串中,该字符串已经是char数组了。
0
当您使用fscanf将输入读入char数组时,您可以迭代该数组并将atoi应用于每个元素,并将输出(整数)输入到int数组中。
1
我可能不会为这个使用fscanf()
:
while ((c = fgetc(fp)) != EOF && isdigit(c))
array[i++] = c - '0';
如果你必须使用fscanf()
,则:
int i = 0;
int v;
while (fscanf(fp, "%1d", &v) == 1)
{
assert(v >= 0 && v <= 9);
array[i++] = v;
}
格式字符串的1限制了一个数字的整数。如果您使用%1d
,则必须通过int *
。如果您在库中有C99的支持,你可以使用:
int i = 0;
while (fscanf(fp, "%1hhd", &array[i++]) == 1)
;
的hh
长度修改表示指针是字符指针(很短的整数),而不是一个指针int
。
相关问题
- 1. fscanf C - 确定字母代替数字
- 2. 将每个数字存储在数组中
- 3. 将8字节值的每个字节存储在数组中
- 4. C -fscanf进入一个动态数组崩溃
- 5. 在fscanf函数中格式化字符串混淆C
- 6. fscanf()函数错误
- 7. fscanf()函数过滤
- 8. 将数组存储在另一个数组中C
- 9. 在一个字段中存储多个数据(将数据存储在数据库的数组中)
- 10. PHP每行创建一个新的数组MYSQL Info,并将数组存储在一个数组中
- 11. 在matlab中读取的混合数字和非数字数据的fscanf文件
- 12. 如何比较两个字符串数组并将匹配值存储在另一个字符串数组中?
- 13. 在C中随机化数字并将它们存储在整数数组中
- 14. C:忽略一个特定的字符,而使用的fscanf
- 15. 的iOS:无法将一个字符串存储在数组中
- 16. Java - 将最后一个字符存储在数组中
- 17. 取出一串字符串并将它们存储在一个数组中
- 18. fscanf读入双数组奇怪值
- 19. fscanf C++等效
- 20. 生成50个随机数并将它们存储到一个数组中C++
- 21. 循环10天,并将每个日期存储在一个数组中
- 22. fscanf和fprintf缓存在C中吗?
- 23. 如何将用户输入的5个整数数字存储在数组中并打印出整个数组?
- 24. fscanf计数“隐形”空间
- 25. 计数数组中的整数并将计数存储在另一个中
- 26. C#:将字节数组存储为XML
- 27. C编程:如何在数组中插入一个数字,以便数字的每个数字都进入数组的每个字段?
- 28. 如何修剪一个字符串并将残差存储在数组中?
- 29. 如何在C++中将一个字符的用户输入存储到数组的每个元素中?
- 30. 的fscanf(c)中 - %s和%C
在第一个例子中,为什么减去'0'? – Amit 2011-04-25 22:56:26
@Amit:因为“0”的字符代码通常是48(但不能保证),而“9”的字符代码通常是57,所以要从数字的字符代码转换为与数字相对应的数字,则减去“0”。这适用于每个代码集(EBCDIC,ISO/IEC 8859-x,Unicode等)。如果有其他类型的数字,例如印地文数字(Unicode U + 0660 ARABIC-INDIC DIGIT ZERO等),它只会遇到问题。 – 2011-04-26 02:02:22
对不起,但我仍然感到困惑。你正在存储一个你读入char变量'c'的字符,对吗?所以你读了数字'1',把它作为一个字符存储到'c'中,然后把'c-0'存入整数数组中。你会减去读取的任何'整数'的'0'。例如,如果该文件具有'14122',该怎么办?这种方法仍然有效吗? – Amit 2011-04-26 04:07:06