所以我有一个名为num.txt的文本文件,它有一个由空格分隔的整数字符串。
假设num.txt包含:5 3 21 64 2 5 86 52 3
我想以read格式打开文件并获取号码所以我可以说
int iochar;
FILE *fp;
fp = fopen("num.txt", "r");
while ((iochar=getc(fp)) !=EOF){
if(iochar!=' '){
printf("iochar= %d\n", iochar); //this prints out the ascii of the character``
}
^这适用于单个数字。但是我应该如何处理两个或三个以上的数字?
最佳答案
使用strtol()
解析整数列表:
char buf[BUFSIZ];
while (fgets(buf, sizeof buf, stdin)) {
char *p = buf;
while (1) {
char *end;
errno = 0;
int number = strtol(p, &end, 10);
if (end == p || errno) {
break;
}
p = end;
printf("The number is: %d\n", number);
}
}
如果要分析浮点数,请使用
strtod()
。