我目前正在为一所学校的项目工作,我已经遇到了问题。基本上是什么分配:我们得到一个包含例如的文件:e 18.91,n 10.03没有点,因此所有这些值,26天,显示一个字母的使用频率。
我需要做的是使用fscanf对这些文件进行排序。我想要一个包含char而另一个包含我想要的数字。我一直在尝试以下事情:
fp2 = fopen("frequencyTable.txt", "r");
if(fp2 != NULL) {
while (fscanf(fp, "%c %d", ¤tLetter[counterTwo], &freqLetter) == 2){
printf("%c AND %d\n", currentLetter[counterTwo], freqLetter);
counterTwo++;
}
exit(0);
}
但是当我注意到我正在实现的fscanf没有看到数字的第二部分,所以从点的右侧,因为双重因此停止循环。我有什么遗漏的吗?我应该得到的是第一个字母,所以currentLetter,第二个整数而不是打破循环并获得半个数字
有没有人对我有什么线索或暗示具体看哪儿。提前谢谢!
答案 0 :(得分:2)
使用%lf
double
格式说明符
fscanf(fp, "%c %lf", ¤tLetter[counterTwo], &freqLetter)
// ^^
答案 1 :(得分:0)
e 18.91,n 10.03 没有点
你必须fscanf
这些行,用指针完成它并用点替换第二个空格,然后在该字符串上使用sscanf
。