【发布时间】:2014-02-05 15:37:00
【问题描述】:
我正在上第一堂关于 C 的课程,但我正在编写一个程序时遇到了一些问题。这是程序:
#include <stdio.h> //printf
#include <stdlib.h>
//Prototypes
void readScores(int* scores, int* actualCount);
void displayScores(int* scores, int* actualCount);
int main() {
int arrayCount = 100;
int scores[arrayCount];
int actualCount = 0;
readScores(scores, &actualCount);
displayScores(scores, &actualCount);
}
void readScores(int* scores, int* actualCount) {
for(int i = 0; i <= 10; i++) {
*actualCount = *actualCount + 1;
scanf("%d", scores);
}
}
void displayScores(int* scores, int* actualCount) {
for(int i = 1; i < *actualCount; i++) {
printf("score %d: \t%d\n", i, *scores);
}
}
我的目标是简单地从 score.txt 文本文件中读取分数并将它们添加到 score[] 数组中。我们在本次作业中的目标是更多地了解指针,所以不要费心试图让我的代码更“高效”或其他任何东西。
我的问题是当我编译代码时
gcc histogram.c -std=c99 -o histogram
并运行它
./histogram <scores.txt
我的输出如下所示:
score 1: 7
score 2: 7
score 3: 7
score 4: 7
score 5: 7
score 6: 7
score 7: 7
score 8: 7
score 9: 7
score 10: 7
如何修改我的代码以正确读取文本文件?这个问题一直困扰着我一整周,非常感谢您的解决方案!
谢谢!
【问题讨论】:
-
scanf格式"%d"只读取一个单个值。 -
在你的代码中你试图从 .txt 文件中读取分数?
-
"使用 scanf 读取 C 中的文件" - 不要。使用
fgets()。 -
@Deepika Sethi OP 的 "./histogram
stdin 读取的。 -
@chux 感谢您的澄清。对linux不太了解。还在学习中。